我正在尝试在python中创建一个简单的计时器脚本。我看到很多其他人也有这个错误,但我认为我的错误可能会有所不同,因为我是python的新手:
time=60
from time import sleep
while (time>0):
print ("you have") (time) ("seconds left")
time-=1
sleep(1)
下面是结果:
>>>
you have
Traceback (most recent call last):
File "H:\counter.py", line 4, in <module>
print ("you have") (time) ("seconds left")
TypeError: 'NoneType' object is not callable
有人能发现此错误吗? 使用%s也失败了我在时变量
周围使用+'s和str()答案 0 :(得分:2)
一个函数只能有一组参数。
print_statement = "you have" + str(time) + "seconds left"
print(print_statement)
以上代码应该有效。
答案 1 :(得分:1)
您使用的print
函数语法错误。请注意python-3中的print
是可调用的。因此,当您调用它时,您可以将所有需要打印的内容作为参数传递。
因此
print ("you have", time, "seconds left")
是正确的语法。您也可以选择指定分隔符。
对于后人,当您尝试将TypeError: 'NoneType' object is not callable
对象用作可调用时,NoneType
会引发错误。当Python发现您曾尝试将time
(对象)传递给print ("you have")
并返回NoneType
对象时,它就会被标记出来。
请注意,在python-3 print
中可调用,它实质上会返回NullType
对象(这根本不算什么)就此而言,因此不可赎回)。