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()
Also wenn ich dieses Programm ausführen, läuft es gut. Sobald ich die Zahl erraten habe, kann ich y oder n eingeben, um sie erneut abzuspielen. Wenn ich nur einmal gespielt habe, funktioniert es gut. Aber wenn ich y wähle und wieder spiele, gibt n nichts ein, nachdem ich das zweite Spiel gespielt habeProgramm wird nach mehreren Spielen nicht beendet?
Versuchen Sie, 'zu wechseln, wenn die Antwort falsch ist:' zu 'wenn die Antwort == False:'. Sie sind verschiedene Dinge; "ist" bezieht sich auf die Referenz des Objekts. –
Das funktioniert nicht. Ich habe gerade eine Antwort von einem Kumpel bekommen, dass ich sys.exit (0) anstelle von break verwenden könnte. Und es funktioniert. – Waldxn