我的 Python 脚本无法在 IDLE 启动器上正常运行.有人可以查看它是否适用于那里的系统,或者检查我是否有错误



这是我的代码。我一直在学习在 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时,练习阅读这些东西非常有用。:)