from random import random
# This function handles the number guessing and number formatting
def run_game():
# rand is declared by grabbing a number between 0 and 1, multiplying it by 100, and rounds to nearest integer
rand = round(random() * 100, 0)
print("Guess the number [0 - 100]")
guesses = 0
while True:
# Assigns the 'answer' variable by grabbing user input from console
answer = input()
# Checks if the input from the console is a number, and if not, asks the user to enter a valid number
if answer.isdigit():
n = int(answer)
if n > int(rand):
print("Number is less than " + str(n))
guesses = guesses + 1
elif n < int(rand):
print("Number is greater than " + str(n))
guesses = guesses + 1
else:
guesses = guesses + 1
print("It took you " + str(guesses) + " guesses to guess the right number!")
reply = play_again()
if reply is False:
break
else:
run_game()
else:
print("Please enter a number")
def play_again():
while True:
reply = input("Play again? (y/n)\n")
if reply.lower() == "y":
return True
elif reply.lower() == "n":
return False
else:
print("Enter 'y' or 'n'")
if __name__ == "__main__":
run_game()
このプログラムを実行すると、正常に動作します。数字を推測したら、yまたはnを入力してもう一度再生することができます。私が一度だけ遊んだら、うまくいく。しかし、yを選択して再びプレイすると、セカンドゲームをプレイした後にnを入力すると、何もしません。複数のゲームの後にプログラムが終了しない?
「返信が偽の場合:」を「返信==偽:」に切り替えてみてください。彼らは別のものです。 'is'はオブジェクトの参照を指します。 –
それは動作しません。私はちょうど私がちょうど休憩の代わりにsys.exit(0)を使うことができると言っている友人からの返信を得ました。そして、それは動作します。 – Waldxn