Ich erstelle ein Spiel "Raten Sie die Zahl" und habe Probleme, wenn ich versuche, es auszuführen. Der Fehler I erhalten wie folgt:NameError bei Verwendung der Def-Funktion in Python
Traceback (most recent call last):
File "C:\Users\Troy\Desktop\guess.py", line 10, in
begin()
File "C:\Users\Troy\Desktop\guess.py", line 9, in begin
ask()
NameError: name 'ask' is not defined
In den verschiedenen ‚Brocken‘ ich das Skript definiert haben, in, hier ist sie:
Der erste Teil hier definiert als begin() denkt an eine Zahl, und fragt, wird dem Benutzer mitgeteilt, dass es zwischen 1 und 10.
def begin():
import random
import sys
guessesRemaining = 3
randomNumber = random.randint(1,10)
print("I am thinking of a number between 1 and 10.")
ask()
begin()
der nächste Teil ist definiert als eine Reihe denken fragen() und fordert den Benutzer auf, eine Zahl einzugeben, die er erraten hat, solange noch genug Vermutungen vorliegen.
def ask():
if guessesRemaining == 0:
print("Oh no! You've run out of guesses! I was thinking of the number " + str(randomNumber) + ".")
else:
print ("Take a guess.")
guess = input(">> ")
if int(guess) < randomNumber:
print("Your number is too small!")
global guessesRemaining
guessesRemaining -= int(1)
ask()
elif int(guess) > randomNumber:
print("Your number is too big!")
global guessesRemaining
guessesRemaining -= int(1)
ask()
elif int(guess) == randomNumber:
print("Well done! You got the right number!")
playAgain()
ask()
Und dieser letzte Teil wird als playAgain() definiert, die den Benutzer fragt, ob sie wieder spielen wollen.
def playAgain():
print("Would you like to play again?")
again = input
if again == y or Y or yes or Yes:
print("Restarting game...")
begin()
if again == n or N or no or No:
print("Quitting game...")
sys.quit()
else:
print("Invalid response!")
playAgain()
playAgain()