0

用 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'
4

3 回答 3

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和功能参考。

于 2013-02-24T20:10:28.790 回答
1

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

于 2013-02-24T20:10:17.583 回答
0

所有要打印的文本和变量都必须在打印函数的括号内。

所以而不是:

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

这将是:

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

或者,您也可以使用逗号而不是加号来自动提供空格:

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

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

于 2013-05-12T00:34:43.480 回答