私は '数字の推測'ゲームを作成しており、それを実行しようとすると問題が発生します。私が手にエラーは次のとおりです。私は、スクリプトを定義している異なる「チャンク」でPythonでdef関数を使用したときのNameError
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
、ここにある:
ここで(始めとして定義された最初の部分)を考えます数は、と尋ねる次の部分を尋ねるように定義されることが
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()
1〜10の数を考えているユーザーに伝えます()と推測する数字を入力するようにユーザーに依頼します。十分な推測が残っている限りです。
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()
そして、この最後の部分で、彼らは再びプレイしたいかどうかをユーザーに尋ねるplayAgain()として定義されます。
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()