这是我的代码。我一直在学习在 Treehouse 上编码,代码似乎在他们的工作区上按预期工作。但是当我尝试使用 IDLE 启动器运行脚本时,出现以下错误。
Traceback (most recent call last):
File "/Users/jasonladieu/Desktop/Computer_number_game.py", line 48, in <module>
com_random_number_game(1, 10)
File "/Users/jasonladieu/Desktop/Computer_number_game.py", line 31, in com_random_number_game
try_again()
File "/Users/jasonladieu/Desktop/Computer_number_game.py", line 4, in try_again
again = input("Would you like to play again?n")
File "<string>", line 1, in <module>
NameError: name 'yes' is not defined
有人可以帮我解决这个问题。我对编码有点陌生,所以如果这很简单,请保持温和。
import random
def try_again():
again = input("Would you like to play again?n")
again = str(again.upper())
if again == "YES":
return com_random_number_game(1, 10)
else:
quit()
def com_random_number_game(a, b):
guess = random.randint(a, b)
print("Welcome to the number guessing game.")
user_num = input("Enter a number between " + str(a) + " and " + str(b) + " for the computer to guess.n")
user_num = int(user_num)
if guess == user_num:
print("The computer guessed your number! The computer guessed " + str(guess) + ".")
try_again()
if guess < user_num:
low_guess = guess + 1
print("The computer guessed lower than your number. The computer guessed " + str(guess) + ". Time to guess again!n")
guess_two = random.randint(low_guess, b)
if guess_two == user_num:
print("The computer guessed your number! The computer guessed " + str(guess_two) + ".")
try_again()
else:
print("The computer did not guess your number. The computer guessed " + str(guess_two) + ".")
try_again()
if guess > user_num:
high_guess = guess - 1
print("The computer guessed higher than your number. The computer guessed " + str(guess) + ". Time to guess again!n")
guess_two = random.randint(a, high_guess)
if guess_two == user_num:
print("The computer guessed your number! The computer guessed " + str(guess_two) + ".")
try_again()
else:
print("The computer did not guess your number. The computer guessed " + str(guess_two) + ".")
try_again()
com_random_number_game(1, 10)
在 Python 2.7 中,您需要使用 raw_input()
而不是 input()
。
回溯的最后一部分:
Traceback (most recent call last):
...
File "...", line 4, in try_again
again = input("Would you like to play again?n")
File "<string>", line 1, in <module>
NameError: name 'yes' is not defined
显示它获取了您键入的字符串以响应提示(从第 4 行开始(,尝试运行它(<string>
,第 1 行(并发现它不是有效的 python 表达式。在学习Python时,练习阅读这些东西非常有用。:)