2017-06-11 2 views
-1

「n」と入力した場合、なぜこの停止しませんか? 私は下のelseでbreakを使用しようとしましたが、エラーが発生します。それは私が休憩している共通の問題です。なぜ私は休憩で投げ捨てられているのか分かりません。「n」を押した後、なぜこのプログラムは停止しないのですか?

import random 

def game(): 

    secret_num = random.randint(1, 10) 
    guesses = [] 
    while len(guesses) < 5: 
    try: 
     guess = int(input("Guess a number between 1 and 10: ")) 
    except ValueError: 
     print("{} isn't a number".format(guess)) 
    else: 
     if guess == secret_num: 
      print("You got it! The number was {}.".format(secret_num)) 
      break 
     elif guess < secret_num: 
      print("My number is higher than {}".format(guess)) 
     else: 
      print("My number is lower than {}".format(guess)) 
     guesses.append(guess) 
    else: 
    print("You didn't get it! My number was {}".format(secret_num)) 
    play_again = input("Do you want to play again? Y/n ") 
    if play_again.lower() != 'Y': 
    game() 
    else: 
    print("Bye!") 
game() 
+0

あなた 'if'はそれが何をすべきかの反対を行います。それは常に真実です。 –

答えて

4

play_againを小文字に変換しますが、大文字と比較してください。

あなたは、単にそれを変更することができます:

if play_again.lower() != 'n': # 'y' was wrong, right? 
    game() 
else: 
    print("Bye!") 
    return # works also without the explicit return but it makes the intention clearer. 
関連する問題