TypeError:必须是str,而不是builtin_function_or_method

时间:2017-12-11 08:59:36

标签: python string

目前我遇到了一些问题,我对python很新,对于那些代码很多的人来说,这似乎很容易回答。我们的任务是做一个'99瓶啤酒在墙上'的挑战,我想通过询问用户他们在瓶子里想要什么来让我的好一点。但是我不断得到error: TypeError: must be str, not builtin_function_or_method

input("What would you like inside your bottle?")

def sing(b, end):
    print(b or 'No more', 'bottle'+('s' if b-1 else ''), end)

for i in range(99, 0, -1):
    sing(i, 'of'+input+'on the wall,')
    sing(i, 'of'+input+',')
    print('Take one down, pass it around,')
    sing(i-1, 'of'+input+'on the wall.\n')

任何帮助将不胜感激,谢谢:3

2 个答案:

答案 0 :(得分:2)

input()方法返回要赋给变量的值。 Compare with the docs。现在您引用的方法不是变量。

你需要像

这样的东西
something = input('Say sth. ')
print(something)

答案 1 :(得分:2)

input是一个内置函数,所以当你执行'of'+input+'on the wall'时,你只是尝试将一个函数连接到一个字符串,这没有多大意义;)
(口译员明确告诉你)

input会返回您未分配给变量的字符串,因此请尝试user_input = input("What would you like inside the bootle?"),然后在代码中使用user_input代替input