Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование.Python.8-10.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.2 Mб
Скачать

Цикл while в Python

Цикл while (“пока”) позволяет выполнять одну и ту же последовательность действий, пока проверяемое условие истинно.

Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл whileиспользуется, когда невозможно заранее определить точно количество шагов.

Синтаксис цикла while в простейшем случае выглядит так:

while условие:     блок инструкций

При выполнении цикла while сначала проверяется условие. Если оно ложно, то выполнение цикла прекращается и управление передается на следующую инструкцию после тела цикла while. Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.

Например, следующий фрагмент программы напечатает на экран квадраты всех целых чисел от 1 до 10:

i = 1 while i <= 10:     print(i) i += 1

В этом примере переменная i внутри цикла изменяется от 1 до 10. Такая переменная, значение которой меняется с каждым новым проходом цикла, называется счетчиком. Заметим, что после выполнения этого фрагмента значение переменной i будет равно 11, поскольку именно при i==11 условие i<=10 впервые перестанет выполняться.

Видно, что цикл while может заменять цикл for … in range(…)

Вот еще один пример использования цикла while для определения количества цифр натурального числа n:

n = int(input()) length = 0

while n > 0:     n //= 10     length += 1

В этом цикле мы отбрасываем по одной цифре числа, начиная с конца, что эквивалентно целочисленному делению на 10 (n //= 10), при этом считаем в переменной length, сколько раз это было сделано.

Впрочем, в языке Питон есть и другой способ решения этой задачи: length = len(str(i))

Еще раз подчеркнем отличие цикла while от цикла for: while используется тогда, когда мы заранее не знаем, сколько раз должны повторять некоторое действие.

Вывод числа с обратным порядком цифр и в заданной системе счисления

Если просматривать цифры числа в цикле, то можно вывести его в обратном порядке:

x = int(input())

inverted_x = ''

while x != 0:

    inverted_x += str(x % 10)

    x = x // 10

print(inverted_x)

Для десятичной системы это можно сделать значительно проще: просто перевести число в строку и инвертировать ее:

print(str(x)[::-1])

Если в алгоритме выше заменить 10 на любое заданное число q, то можно вывести число в обратном порядке, и в другой системе счисления:

x = int(input())

q = int(input())

inverted_x = ''

while x != 0:    

    inverted_x += str(x%q)    

    x = x // q

print(inverted_x)

Чтобы порядок цифр при переводе был нормальный можно собирать второе число, приклеивая к нему цифры слева, а не справа:

x = int(input())

q = int(input())

x_in_q = ''

while x != 0:    

    x_in_q = str(x % q) + x_in_q    

    x = x // q

print(x_in_q)

Переменные-флаги

Переменная-флаг — это переменная, которая принимает одно из двух значений (обычно истина/ложь или 1/0). Она используется, когда нужно запомнить, что произошло некоторое событие (встретилось нужное число, выполнилось условие и т.п.). Например, ее можно использовать, чтобы выйти из вложенных циклов:

for i in range(n):      for j in range(m):          if i + j == 15:              flag = 0              break      if flag == 0:          break