“function”类型的对象在python中没有len()

2024-09-27 09:28:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在寻找解决这个错误的方法有一段时间了,但是那些帮助过别人的解决方案对我并没有多大帮助。在

这是我写的代码。在

def main():
    while True:
        userInput()
        characterCount(userInput)
        middleLetter()
        spaceCount()
        letterReplace()
        displayOutput()


def userInput():
    sentence = str(input('Enter a sentence at least 10 letters long, or type STOP to quit:')) 
    if sentence == 'STOP':
        quit()
    return sentence

def characterCount(sentence):
    characterCount = len(sentence) - sentence.count(' ')
    if characterCount < 10:
        print('Sorry that is less than 10 letters')
    return characterCount

def middleLetter(sentence):
    sentence = len(sentence)/2
    middleLetter = [sentence +1]
    return middleLetter

def spaceCount(sentence):
    spaceCount = sentence.count(' ')
    return spaceCount


def letterReplace(sentence):
    letterReplace= sentence.replace("a", "&")
    return letterReplace


def displayOutput(characterCount,middleLetter,spaceCount,letterReplace):
    print('Number of letters: '(characterCount))
    print('Middle letter: '(middleLetter))
    print('Spaces counted: '(spaceCount))
    print('Sentence with letter replaced: '(letterReplace))


main()

我的问题是,当我运行程序时,我得到了错误。在

^{pr2}$

大多数时候我看到这个错误是因为使用了int而不是字符串,但是我看不出是什么导致了这个错误。任何帮助都将不胜感激。在

使用一些给定的建议,我已经修复了最初的错误,但现在当我尝试运行它时,我收到了错误。在

Traceback (most recent call last):
  File "C:\Users\wood\Desktop\Software design\Program 4\program3_4QuinnWood.py", line 59, in <module>
    main()
  File "C:\Users\wood\Desktop\Software design\Program 4\program3_4QuinnWood.py", line 22, in main
    displayOutput(characterCount,middleLetter,spaceCount,letterReplace)
  File "C:\Users\wood\Desktop\Software design\Program 4\program3_4QuinnWood.py", line 53, in displayOutput
    print('Number of letters:'(characterCount))
TypeError: 'str' object is not callable

Tags: returnmaindef错误userssentencefileprint
3条回答

在您的代码中,userInput没有len()。但是对象userInput()-有。在

您需要捕获userInput()的输出:

while True:
    sentence = userInput()
    characterCount(sentence)
    ...

您试图在这里用函数作为参数调用函数。在

userInput()
characterCount(userInput)

相反,捕获变量中的返回值,并使用该变量作为参数调用另一个函数。在

示例:

^{pr2}$

没有len()

相关问题 更多 >

    热门问题