Python 3.3.0错误

时间:2013-02-24 20:07:23

标签: python

用Python 3.3.0尝试了我的第一个程序

print ("cookies")
x= input ("enter your name")
print ("good day to you sir ") + x

当我想用F5开始我的程序时,它说

Traceback (most recent call last):
  File "C:/Users/xxxx/Desktop/cookies.py", line 3, in <module>
    print ("good day to you sir ") + input
TypeError: unsupported operand type(s) for +: 'NoneType' and 'builtin_function_or_method'

3 个答案:

答案 0 :(得分:4)

print ("good day to you sir ") + x

print是Python 3中的一个函数,因此括号属于该函数。 print函数本身的返回值为None,因此您基本上所做的是None + x,这恰好会引发您获得的错误。

你要做的是在括号内直接连接两个字符串:

print("good day to you sir " + x)

另外你的异常实际上有点不同,你仍然有print(..) + input(我想这是你的代码的旧版本?)注意input是对得到的函数的引用来自用户的数据,因此您实际上尝试添加None和函数引用。

答案 1 :(得分:1)

正确的打印方式是print ("hello", input)print ("hello" + input)

答案 2 :(得分:0)

要打印的所有文本和变量都必须位于打印功能的括号内。

所以代替:

print("good day to you sir ") + x

它将是:

print("good day to you sir " + x) 

或者,您也可以使用逗号代替加号自动提供空格:

print("good day to you sir", x)

代码的所有其他部分都很好。