← Все вопросы

Как правильно сделать бесконечный цикл и выйти из него?

Задан 6 месяцев назад811 просмотров2 ответа
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 по условию выхода. Это стандартный паттерн.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект