TypeError: NoneType对象不可调用。

3

我刚接触Python,但是无法弄清楚这段代码的问题。除了没有打印我的print语句之外,一切正常。相反,我却得到了以下错误:""and your favorite color is %s")(name, quest, color) TypeError: 'NoneType' object is not callable" 以下是我的代码。

name = input("What is your name?")
quest = input("What is your quest?")
color = input("What is your favorite color?")

print ("Ah, so your name is %s, your quest is %s,"
"and your favorite color is %s")(name, quest, color)
1个回答

18

你的字符串格式语法有误

print("Ah, so your name is %s, your quest is %s and your favorite color is %s" % (name, quest, color))

虽然您可能更喜欢更新的.format样式

print("Ah, so your name is {}, your quest is {} and your favorite color is {}".format(name, quest, color))

或者,从Python3.6开始你可以使用f-string(注意以下第一个字符加上f

print(f"Ah, so your name is {name}, your quest is {quest} and your favorite color is {color}")

你收到的错误是由于对 print 进行评估导致的。鉴于出现此错误,我假设你正在使用 Python3,它会执行以下操作:

print('hello')()

这被评估为

(print('hello'))()

首先调用带参数'hello'print函数。因为print函数返回None,所以接下来会发生什么:

(None)()

或者等价地说

None()

None不可调用,导致了您的错误。


2
我看过的最好的解释之一 +1 - mojo706

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接