我的代码中出现“单词未定义”错误,请帮忙,并给我其他建议

时间:2019-12-10 10:56:21

标签: python

我是python的新手,我正在尝试制作类似hang子手的游戏。当我更正其他错误时,第1行出现错误。您还可以给我一些关于将来使用/不使用的建议,例如多余的代码。这是基本游戏;

word = hot
letters = ["h", "o", "t"] 
guess_count = 0
guess_limit = 5
while guess_count < guess_limit:
    guess_count += 1 
    guess = int(input("What is your letter? "))
    if guess == letters[0]:
        print("One down!")
    elif guess == letters[1]:
        print("Holy Moly!")
    elif guess == letters[2]:
        print("Wow! you're on fire")
    if guess == word:
        if True:
            print("Ding! Ding! Ding! We have a winner!")
else:
    print("Better luck next time!")

这是我的第一个项目/游戏,也是我第一次使用Stackoverflow,所以请放轻松,任何建议都对我有帮助!

3 个答案:

答案 0 :(得分:1)

您的代码中有一些错误:
第1行: word = hot ==> word = 'hot'。您需要将变量的值设置为字符串,使用' '" "声明字符串。如果不这样做,编译器会搜索变量hot的值,该值不存在。
第7行: guess = int(input("What is your letter? ")) ==> guess = str(input("What is your letter? "))guess = input("What is your letter? ")。您提示玩家输入字母string,因此在您的程序中,您可以选择使用str()来将输入转换为string类型,也可以选择仅使用{{1 }},因为此函数返回一个input()值。
通用代码
您可以进行一些改进,缩短string块:

if - elif - elif

这应该有效。如果您对这段代码有任何疑问,请随时提问。
挑战:
当程序要求输入时,请确保显示了猜测的数量。
例如# outside of while loop correct = 0 first = True # after input() function in the while loop if guess in letters: correct+=1 letters.remove(guess) print("You have found a letter!") else: print("Wrong, try again") if correct == len(word) and first == True: print("You have found all the letters") first = False if guess == word: print("You have found the word!")

答案 1 :(得分:0)

在您的代码中,您正在设置word = hot。编译器认为hot一词与另一个未定义的变量有关,因此会引发未定义的变量错误/异常。如果单词hot被认为是一个变量,而不是在{之前定义它{1}}行这样,

word = hot

如果应该对字符串(单词/句子)使用hot,则将其用引号引起来,即hot = 'Some Value' word = hot

答案 2 :(得分:0)

您只需要更改:

word = hot

word = "hot"

否则,python不会将“ hot”识别为字符串,而是会尝试在当前名称空间中查找它的对象表示形式。

另外,您需要将int强制转换为str(对于py2):

guess = int(raw_input("What is your letter? "))

guess = str(raw_input("What is your letter? "))

用户输入将是一个字符串,因此尝试将该输入转换为整数将导致错误!