Питон не работает

def main(): again = "y" while again == "y" or again == "Y": module() again = raw_input("Do it again Y/y? ") return 

При входе в Y / y программа просто сидит. Он не закрывается, но он также не перезапускается. Ввод ничего, кроме Y / y, и программа закроется.

Я уверен, что я пропустил что-то простое.

3 Solutions collect form web for “Питон не работает”

 def main(): again = "y" while again == "y" or again == "Y": module() again = raw_input("Do it again Y/y? ") return 

С отступом Python является ключевым

return внутри цикла сразу после ввода ввода, поэтому вы выходите из функции независимо от ввода.

Альтернативный подход:

 def main(): while True: module() again = raw_input("Do it again Y/y? ") if again.lower() != 'y:' return 

Это упрощает конструкцию цикла несколькими способами:

  1. Нет никакого первоначального назначения переменной перед циклом.
  2. Вход преобразуется в нижний регистр, поэтому мы сравниваем только 'y' вместо версий с верхним и нижним регистром.
  3. Управление контуром упрощается, бесконечный цикл выйдет только в том случае, если пользователь вводит ничего, кроме 'Y' или 'y' .

return приводит к выходу из функции main. вытащите его из блока while или beter, но полностью избавитесь от него.

  • Самый эффективный метод получения ключа для значения в dict
  • Как заменить символы в строке на следующую?
  • Могут ли оптимизировать импорт PyCharm в алфавитном порядке?
  • None vs Empty String в Python
  • константы в Python: в корне модуля или в пространстве имен внутри модуля?
  • Внесение изменений в изменяемый атрибут в python
  • Как проверить, имеют ли два ключа в dict те же значения
  • как разбить список по два в точке, где предикат сначала False
  • Python - лучший язык программирования в мире.