Не выполняет блок кода после цикла while в приложении для Виндоус "Python 3.9". Через коммандную строку все работает
Только начал учить Python. При запуске данного кода с файла в Python, цикл while выполняется и программа вылетает, не выводя последнюю часть "print" c "for". Пробовал делать цикл независимым от булевой переменной и прекращал его break, но эффект тот же... Пробовал добавлять к if фнкцию else, но не достиг успеха. Помогите пожалйста разобраться, в чем дело, чтобы после завершения цикла выполнялся следующий блок кода. Обновлено: Запустил с коммандной строки, все получилось. Не правильно исполняется в приложении Python 3.9. Буду рад помощи, если кто с таким сталкивался)
#Учусь заполнять словарь с помощью цикла while
responses = {}
# Создаю булевую переменную
polling_active = True
#сам цыкл
while polling_active:
#задаю вопросы для создания ключа и значения для словаря
name = input("\nWhat your name? ")
response = input("Which mountain would you like to climb someday? ")
#сохраняю результат в словарь
responses[name] = response
#спрашиваю про продолжение
repeat = input("\nWould you like to let another person respond? (yes/no) ")
#условие прекращения работы цикла
if repeat == 'no':
polling_active = False
# Вивод конечного результата после завершения цикла
# Который и не работает, программа завершается после смены переменной polling_active = False
print("\n--- Poll Results ---")
for name, response in responses.items():
print(f"{name.title()} would like to climb {response.title()}.")
Ответы (2 шт):
попробуй просто поставить в условие цикла true, а в условии отмены просто break
Ваш код рабочий, но я бы дал вам совет:
Здесь if repeat == 'no': вы проверяете равен ли ввод no, но а что если пользователь введёт No или NO? Лучше приводить к нижнему регистру с помощью lower() - > if repeat.lower() == 'no':
Также подробнее о методах строк вы можете посмотреть здесь