首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeError:类型为'builtin_function_or_method‘的对象在代码的2个部分中没有len()

TypeError:类型为'builtin_function_or_method‘的对象在代码的2个部分中没有len()
EN

Stack Overflow用户
提问于 2014-11-15 21:19:35
回答 1查看 696关注 0票数 0

我正在做一个绞刑游戏,我总是遇到同样的错误,我试着调试了几个小时,没有任何进展。

这是错误消息:

代码语言:javascript
运行
复制
Traceback (most recent call last):
   File "hangman.py", line 128, in <module>
       guess = guessletter(miss + correct)
   File "hangman.py", line 103, in guessletter
       if len(guess) != 1:
   TypeError: object of type 'builtin_function_or_method' has no len()

下面是我代码的相关部分:

第98 - 110行

代码语言:javascript
运行
复制
`def guessletter(previousguess):   #this function lets the player guess a letter, and see if the guess is acceptable
    while True:
        print ('Guess a Letter')
        guess = input()
        guess = guess.lower     
        if len(guess) != 1:
            print ('Enter single letter please.')
        elif guess in previousguess:
            print ('That letter was already guessed. Choose another')
        elif guess not in 'abcdefghijklmnopqrstuvwxyz':
            print ('Please put a letter')
        else:
            return guess`

第125~141行

代码语言:javascript
运行
复制
while True:
board(hangmanpictures, miss, correct, unknownword)   #i define a board function at the top

guess = guessletter(miss + correct)   #i use the function defined above, but it seems to make an error here..

if guess in unknownword:
    correct = correct + guess

    foundallletters = True    #check if player has won
    for k in range(len(unknownword)):
        if unknownword[k] not in correct:
            foundallletters = False
            break

    if foundallletters:
        print ('The secret word is "' + unknownword + '"! You won!')
        gamefinish = True
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-15 21:20:31

问题在于这一行:

代码语言:javascript
运行
复制
guess = guess.lower

您忘了调用str.lower方法,因此guess被分配给方法对象本身。

要解决此问题,请将()放在名称后面,调用该方法:

代码语言:javascript
运行
复制
guess = guess.lower()
#                  ^^

以下是一个示范:

代码语言:javascript
运行
复制
>>> guess = 'ABCDE'
>>> guess = guess.lower
>>> guess
<built-in method lower of str object at 0x014FA740>
>>>
>>> guess = 'ABCDE'
>>> guess = guess.lower()
>>> guess
'abcde'
>>>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26950849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档