← Все вопросы
Как правильно сделать бесконечный цикл и выйти из него?
17
Нужен цикл, который читает команды от пользователя, пока не введут 'exit'. Видел вариант while True, но не страшно ли это? Как из него потом выйти?
2 ответа
26
✓ Принятый ответ — помог автору
while True — это нормальный и идиоматичный способ, не бойся его. Главное — внутри обязательно должно быть условие выхода через break:
while True:
cmd = input('> ')
if cmd == 'exit':
break
print('выполняю:', cmd)
Так пишут циклы-меню, REPL, серверные циклы. «Страшно» становится только если забыть break — тогда он реально бесконечный. А с break по условию это просто удобная замена while <условие>, когда условие проверять удобнее в середине тела.
Дмитрий Конопацкий а можно через флаг done = False / while not done? · 6 месяцев назад
Виктор Сорокин автор: можно, но с break короче и читается лучше для меню · 6 месяцев назад
10
while True: + break по условию выхода. Это стандартный паттерн.
Ваш ответ
Войдите, чтобы ответить на вопрос.