修复我的Python函数中的非类型错误

时间:2014-10-29 04:52:31

标签: python

以下是产生错误的函数:

def getGuessedWord(secretWord, lettersGuessed):
    x = len(secretWord)-1
    y = 0
    letter = lettersGuessed[:]
    while y <= x: 
        first=secretWord[y]
        if first in letter:
            return " " + first + " " + str(getGuessedWord(secretWord[1:], lettersGuessed[:]))
        else:
            return " _ " + str(getGuessedWord(secretWord[1:], lettersGuessed[:]))    
    return ''

它作为一个独立的函数工作,但当我尝试在模块中传递变量时,我得到:

第4行,在getGuessedWord中

    letter = lettersGuessed[:]
TypeError: 'NoneType' object is not subscriptable

不确定错误在哪里。忘记提到它是一个刽子手游戏的一部分,所以我传递了生成的随机单词以及用户猜到的一封信。

1 个答案:

答案 0 :(得分:0)

你显然在某个时候将None作为第二个参数传递给了这个函数。您可以尝试在功能启动后添加print(secretWord, lettersGuessed),以了解如何到达目的地。

P.S。每次推荐时,您都不需要复制lettersGuessed

P.P.S。另外,你并没有真正使用while循环,你可以用if替换它。