2016-11-02 5 views
-2

Я пытаюсь использовать цикл while, но затем я попросил пользователя войти в 5, чтобы выйти из цикла. Я в Python 3Как заставить пользователя выйти из цикла while

def main(): 
    print("Welcome to the List Info Checker") 
    printMenu() 
    printValue = input("Please enter a number between 1 and 5(inclusive): ") 
    while printValue != 5: 
     if printValue == 1: 
      print("1") 
     elif printValue == 2: 
      # allTheSame() 
      print("2") 
     elif printValue == 3: 
      # allDifferent() 
      print("3") 
     elif printValue == 4: 
      # sortThis() 
      print("4") 

main() 
+0

Это питон 3 или python 2? – BorrajaX

+0

@Whud объяснил это ниже. Также, если вы застряли в бесконечном цикле и хотите остановить программу, вы можете использовать клавишу прерывания 'ctrl-c' – tadm123

ответ

2

Там нет 2 способа вырваться из while петли

  1. Have изменение утверждение в некотором роде, так что это уже не True

  2. использовать break для выхода из «петли низкого уровня»

Поскольку пользовательский ввод задается только перед циклом, он не может измениться после начала цикла, вызвавшего бесконечный цикл. Если вход был внутри цикла он может быть разорван пользователем, поставив 5, потому что задают каждый раз, когда перезапуск цикла:

printValue = input("Please enter a number between 1 and 5(inclusive): ") 

while printValue != 5: 

    if printValue == 1: 
     print("1") 
    elif printValue == 2: 
     # allTheSame() 
     print("2") 
    elif printValue == 3: 
     # allDifferent() 
     print("3") 
    elif printValue == 4: 
     # sortThis() 
     print("4") 

    printValue = input("Please enter a number between 1 and 5(inclusive): ") 
0

Вам нужно запросить вход в цикл, в противном случае его всегда просто проверить то же самое значение, введенное в первый раз. попробуйте это:

def main(): 
print("Welcome to the List Info Checker") 
printMenu() 
printValue = input("Please enter a number between 1 and 5(inclusive): ") 
while printValue != 5: 
    if printValue == 1: 
     print("1") 
    elif printValue == 2: 
     # allTheSame() 
     print("2") 
    elif printValue == 3: 
     # allDifferent() 
     print("3") 
    elif printValue == 4: 
     # sortThis() 
     print("4") 
    printValue = input("Please enter a number between 1 and 5(inclusive): ") 

main() 
0

вы можете использовать «ломает»

print("Welcome to the List Info Checker") 
printMenu() 
while True: 
    if printValue == 1: 
     print("1") 
    elif printValue == 2: 
     # allTheSame() 
     print("2") 
    elif printValue == 3: 
     # allDifferent() 
     print("3") 
    elif printValue == 4: 
     # sortThis() 
     print("4") 
    elif printValue == 5: 
     break 

или для последние две строки

else: 
     break 
Смежные вопросы