Как выйти из цикла в Python?
Скрипт не выходит из цикла, если ввести 0
while True:
choice = input("Что вы сегодня хотите?\n")
key = input("Введите порядковый номер продукта (начиная с нуля)")
lunch[key] = choice
n = input("Еще что-то?\n(Для ответа введите 0 или 1\nГде 0 - Нет, а 1 - Да)\n")
if n == 0:
break
Ответы (2 шт):
Автор решения: Dmitry
→ Ссылка
Очень частая ошибка. Вы сравниваете разные типы данных. Необходимо привести либо к int, то, что вы вводите в строку, либо ноль сделать строкой
#1 вариант
n = int(input("Еще что-то?\n(Для ответа введите 0 или 1\nГде 0 - Нет, а 1 - Да)\n"))
if n == 0:
break
#2 вариант
n = input("Еще что-то?\n(Для ответа введите 0 или 1\nГде 0 - Нет, а 1 - Да)\n")
if n == '0':
break
Директива input() возвращает тип данных строка. Следовательно, даже если в строке будет 0 он никогда не будет равен int-овому нулю. Приводите данные к одному типу и только после этого сравнивайте
Автор решения: magistar
→ Ссылка
Вы сравниваете строку с числом. Можно либо преобразовать ввод в число:
n = int(input("Еще что-то?\n(Для ответа введите 0 или 1\nГде 0 - Нет, а 1 - Да)\n"))
Либо сравнивать переменную со строкой:
if n == '0':
Второй вариант предпочтительнее, потому что если пользователь введёт букву или другой символ, не произойдёт ошибки.