Не понимаю, почему while не видит стоп слово и продолжает запрашивать input
def check(summa):if summa <= 8000:print('Сумма ниже среднего.')elif 8000 < summa < 10000:print('Оптимальная сумма.')else:print('Необходимо согласование!')k = 0summa = int(input('Необходимая сумма(0-завершить)'))while summa != '0':check(summa)k+=summasumma = int(input('Необходимая сумма(0-завершить)'))print(f"Всего запрошено денег:{k}")
Ответы (3 шт):
Автор решения: Alexey Trukhanov
→ Ссылка
Насколько можно понять Ваш код (лучше, конечно, оформлять код в специальной разметке) Ваша проблема в том, что Вы конвертируете инпут в целое число, а условие в while
ожидает строчный 0
(0 оформлен в кавычки). Поэтому условие выхода невозможно достигнуть. Надо убрать кавычки у ноля в условии while
.
while summa != 0:
Автор решения: Daria
→ Ссылка
Ты сравниваешь с символом '0', а надо просто с нулем 0. Убери кавычки
def check(summa):
if summa <= 8000:
print('Сумма ниже среднего.')
elif 8000 < summa < 10000:
print('Оптимальная сумма.')
else:
print('Необходимо согласование!')
k = 0
summa = int(input('Необходимая сумма(0-завершить)'))
while summa != 0:
check(summa)
k+=summa
summa = int(input('Необходимая сумма(0-завершить)'))
print(f"Всего запрошено денег:{k}")
print(check(11000))
Автор решения: OlegXio
→ Ссылка
У вас проверка в цикле while сравнивает значение переменной summa со строкой, но нигде в коде переменной summa не присваивается строковое значение. Исправьте строку while summa != '0':
, и получите в итоге while summa != 0: