© Яценко Р.Н., 2019-2020
Цикл while
(“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно
Условие записывается до тела цикла и проверяется до выполнения тела цикла
Как правило, цикл while
используется, когда невозможно определить точное значение количества проходов исполнения цикла
while условие:
тело цикла
[else:
операторы по завершению цикла]
while
сначала проверяется условиеwhile
i = 1 while i <= 10: print(i ** 2) i += 1
n = 567 length = 0 while n > 0: n //= 10 # это эквивалентно n = n // 10 length += 1 print(length)
else:
и после него блок операций, который будет выполнен один раз после окончания цикла, когда проверяемое условие станет неверноi = 1 while i <= 5: print(i) i += 1 else: print('Цикл окончен, i =', i)
Если во время выполнения Python встречает оператор break
внутри цикла, то он сразу же прекращает выполнение этого цикла и выходит из него
При этом ветка else
исполняться не будет
Оператор break
лучше вызывать только внутри оператора if
, то есть он должен выполняться только при выполнении какого-то особенного условия
Программа считывает числа до тех пор, пока не встретит отрицательное число
a = int(input()) while a != 0: if a < 0: print('Встретилось отрицательное число', a) break a = int(input()) else: print('Ни одного отрицательного числа не встретилось')
n = int(input()) for i in range(n): a = int(input()) if a < 0: print('Встретилось отрицательное число', a) break else: print('Ни одного отрицательного числа не встретилось')
continue
встречается где-то посередине цикла, то пропускаются все оставшиеся операторы до конца цикла, и исполнение цикла продолжается со следующей итерацииbreak
и continue
содержатся внутри нескольких вложенных циклов, то они влияют лишь на исполнение самого внутреннего циклаfor i in range(3): for j in range(5): if j > i: break print(i, j)
for i in range(3): j = 0 while j <= i: print(i, j) j += 1
В Питоне можно за одну инструкцию присваивания изменять значение сразу нескольких переменных
a = 0
b = 1
# А можно в одну строку
a, b = 0, 1
a = 1 b = 2 a, b = b, a print(a, b)
2 1
Алгоритм Евклида нахождения наибольшего общего делителя (НОД)
a = int(input()) b = int(input()) while b != 0: c = a % b a, b = b, c print('НОД =', a)
Компьютер выбирает случайное число в диапазоне от 1 до 100
Игрок пытается отгадать это число, и компьютер сообщает предположение больше/меньше, чем загаданное число или попало в точку
Игра "Отгадай число"
import random # Правила игры print("Добро пожаловать в игру 'Отгадай число'!\n") print("Я загадал натуральное число в диапазоне от 1 до 100") print("Постарайтесь отгадать его за минимальное число попыток\n") # начальные значения the_number = random.randint(1, 100) guess = int(input("Ваше предположение: ")) tries = 1
# цикл отгадывания while guess != the_number: if guess > the_number: print("Меньше...") else: print("Больше...") guess = int(input("Ваше предположение: ")) tries += 1 # Вывод результатов print("Вам удалось отгадать число! Это в самом деле", the_number) print("Вы затратили на отгадывание всего лишь", tries, "попыток!")
© Яценко Р.Н., 2019-2020