Цикл while
Цикл
Цикл - это многократное выполнение одного и то же действия. Цикл может повторяться 1, 10, 100 раз, или бесконечно, или пока выполняется какое то условие.
В Python цикл while - выполняется пока условие true. Синтаксис while <условие>: . Основное применение while - когда неизвестно сколько повторений нужно.условие>
# Повторение N-количество раз
i = 0
while i < 7:
print(i) # вывод значения переменной i
i += 1 # увеличение значения переменной i на единицу
# Бесконечное повторение
while True:
print('Это будет выводиться бесконечно')
# Повторение по условию
# пока пользователь не введет 12
n = 0
while n != 12:
n = int(input('Введите число: '))
print(f'Вы ввели {n}, для выхода введите 12')
Оператор break
С помощью оператора break можно прервать цикл в любой момент.
command = ''
while True:
command = int(input('Для выхода введите q '))
print(f'Вы ввели {n}')
if command == 'q':
break # break прерывает выполнение цикла
Оператор continue
Оператор continue начинает следующий проход цикла, минуя оставшееся тело цикла
i = 0
while i < 5:
i += 1
if i % 2 == 1: # если значение i нечетно, то вызываем оператор continue
continue # оператор continue переходит к след.проходу
# в случае вызова continue код ниже не выполнится
print(i)
Оператор else
Слово else, примененное в цикле for или while проверяет, был ли выход из цикла из-за break. Если выход из цикл был произведен break, то команды в else не будут выполнены. Else будут выполнены только, если цикл завершился самостоятельно.
for i in 'hello world':
if i == 'a':
break # если найдется "а" выполнится break
else:
print('Буквы a в строке нет') # если цикл завершился самостоятельно
x = ''
while x == 'Q':
print('Y - завершить раньше времени.')
print('Q - завершить цикл нормально.')
x = input('Введите команду: ')
if x == 'Y':
break
else:
print('Цикл завершен раньше времени')
print('Программа дальше')
Пример
-
Игра угадай число.
Программа загадывает число от 1 до 10, ваша задача угадать его. После победы программа покажет количество попыток. Для выхода из игры нужно ввести 666.
from random import randint random_num = randint(1, 10) in_num = 0 counter = 0 print('Загадано число от 1 до 10, ваша цель угадать его.') print('Для выхода введите 666 ') while in_num != random_num: counter += 1 in_num = int(input('Введите число: ')) if in_num == 666: break else: print(f'Поздравляем, Вы, выиграли. Количество попыток {counter}, ') print('До свидание')
-
Число от A до B.
Пользователь вводит два числа (гда А больше В). Вывести все числа от A до B включительно.
A = int(input('Введите число A: ')) B = int(input('Введите число B: ')) while A >= B: print(A) A -= 1
Задачи
-
Четные от A до B.
Пользователь вводит числа A и B (A > B). Выведите четные числа от A до B включительно.
# Ввод: >> 10 >> 1 # Вывод: >> 10 >> 8 >> 6 >> 4 >> 2
-
Сумма чисел.
Пользователь вводит числа до тех пор, пока не введет 0. Выведите сумму введенных чисел.
# Ввод: >> 1 >> 15 >> 10 >> 11 >> 2 >> 0 # Вывод: >> Сумма равна: 39
-
Максимум.
Пользователь вводит числа до тех пор, пока не введет 0. Выведите максимальное введенное число.
# Ввод: >> 1 >> 15 >> 10 >> 11 >> 2 >> 0 # Вывод: >> Максимум равен: 15