2016-07-27 2 views
2

Простой вопрос, но он заводит меня орехами. почему, когда я запускаю этот код, он просто продолжает повторяться? И мои отступы правильны, просто нужно было 4 раза, чтобы опубликовать это по любой причине.Python while loop продолжает повторяться

Лучшие результаты

0 - Выход 1 - Показать результаты

Исходный код:

scores = [] 

choice = None 
while choice != "0": 

    print(
    """ 
    High Scores 

    0 - Exit 
    1 - Show Scores 
    """ 
    ) 

    choice = input("choice: ") 
    print() 

    if choice == "0": 
     print ("exiting") 

    elif choice == "1": 
     score = int(input("what score did you get?: ")) 
     scores.append(score) 

    else: 
     print ("no") 

    input ("\n\nPress enter to exit") 
+0

Вы _sure_ вы работаете Python 3? –

+0

sayan 98 - это моя идентификация под моей петлей while. спасибо –

+0

@JacobMoore рад помочь! – sayan

ответ

1

Это потому, что вы не используете правильный отступ. Пожалуйста, открепите код под циклом while, который вы хотите исполнить. while choice != 0

Дальше не упоминается ошибка, поскольку @ wookie919 неправильно указан, потому что вы берете строку как входную, а не Int. Однако вы можете ввести ваш ввод в виде строки, обернув его вокруг объекта int(), например, int(input("Choice .. "))

Надеюсь, это помогло.

0

Это потому, что вы сравниваете целое число в строку. Попробуйте ввести "0" вместо 0. Или измените вашу программу для сравнения с 0 вместо "0".

+0

Где OP, сравнивающий int с строкой? –

+0

@ Two-BitAlchemist Это продуманное предположение, когда вы пытаетесь найти код OP. – wookie919

-1
scores = [] 

choice = None 
while choice != "Exit": 

    print("High Scores\n0 - Exit\n1 - Show Scores") 

    choice = input("choice: ") 

    if choice == "0": 
     print ("exiting") 

    elif choice == "1": 
     try: 
      score = int(input("What score did you get?: ")) 
      scores.append(score) 
     except: 
      print('INVALID INPUT') 
    else: 
     print('INVALID INPUT') 

    choice = input ("\n\nPress enter to exit: ") 
    choice = "Exit" 
+0

Вы также должны увидеть мой другой ответ. Он лучше справляется с обработкой ошибок. –

+0

В будущем вы должны запустить код, который является проблематичным с помощью этого шагового инструмента. Это поможет вам: http://www.pythontutor.com/visualize.html#mode=edit –

-1

Вы также можете сделать это, что лучше, чем мой последний ответ:

scores = [] 

def user_choice(): 
    choice = None 
    while choice != "Exit": 

     print("High Scores\n0 - Exit\n1 - Show Scores") 

     choice = input("Choice: ") 

     if choice == "0": 
      print ("Exiting...") 
      return None 

     elif choice == "1": 
      try: 
       score = int(input("\nWhat score did you get?: ")) 
       scores.append(score) 
       go_on = input("\nEnter 'y' to go back or anything else to exit: ") 
       if go_on == "y": 
        user_choice() 
       else: 
        print('Exiting...') 
        choice = "Exit" 
      except: 
       print('\nINVALID INPUT\n') 
       user_choice() 
     else: 
      print('\nINVALID INPUT\n') 
      user_choice() 


     choice = "Exit" 

user_choice() 
Смежные вопросы