Не выполняет блок кода после цикла 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 шт):

Автор решения: lors_fon_trier

попробуй просто поставить в условие цикла true, а в условии отмены просто break

→ Ссылка
Автор решения: Tehnorobot

Ваш код рабочий, но я бы дал вам совет:

Здесь if repeat == 'no': вы проверяете равен ли ввод no, но а что если пользователь введёт No или NO? Лучше приводить к нижнему регистру с помощью lower() - > if repeat.lower() == 'no':

Также подробнее о методах строк вы можете посмотреть здесь

→ Ссылка