这是有问题的功能:
def single_letter_guess(guess,word):
global guessed_letters
global lives_remaining
if word.find(guess) == -1:
guessesLeft -= 0
guessed_letters = guessed_letters + guess.lower()
if all_letters_guessed(word):
return True
return False
错误来自第四行并显示:
if word.find(guess) == -1:
AttributeError: 'function' object has no attribute 'find'
我仍然是python的新手,并不知道如何解释此错误消息。从技术上讲,它应该在字符串中查找猜测的字母。如果需要更多上下文,我可以提供完整的代码。
答案 0 :(得分:1)
在您的函数中word
是一个传入的函数,因此word.find(guess)
导致您的错误。如果您想使用word
find
应为字符串
我认为你可能会在某个地方设置word = some_function
时丢失了parens所以你设置的单词等于函数而不是返回值。:
In [10]: def foo():
....: return "foo"
....:
In [11]: word = foo # no parens
In [12]: print(word.find("f"))
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-12-9db996b190ed> in <module>()
----> 1 print(word.find("f"))
AttributeError: 'function' object has no attribute 'find'
In [13]: word = foo()
In [14]: print(word.find("f"))
0