在Python 3.4中连接字符串和int

apt*_*get 3 python string

我是Python的新手,所以我一直在运行自己的练习,只是开始记忆基本的功能和语法.我正在使用Pycharm IDE和Python 3.4.在运行一些基本的str/int连接练习时,我遇到了一个问题.下面的每个实例都抛出一个不受支持的操作数类型.Stackoverflow上有几个线程清楚地说明了正确的连接语法,但上面的错误信息继续困扰着我.

print ("Type string: ") + str(123)
print ("Concatenate strings and ints "), 10
Run Code Online (Sandbox Code Playgroud)

Raf*_*erm 10

在Python 3+中,print是一个函数,因此必须在括号之间调用它的参数.例如,你的例子是什么意思:

print ("Type string: ") + str(123)
Run Code Online (Sandbox Code Playgroud)

实际上会是这样的:

var = print("Type string: ")
var + str(123)
Run Code Online (Sandbox Code Playgroud)

由于print没有返回(在Python中,这意味着None),这相当于:

None + str(123)
Run Code Online (Sandbox Code Playgroud)

这显然会给出错误.

关于你想要做什么,你想要做什么很简单:将你想要print 功能传递给你,这可以通过各种方式完成:

print ("Type string: " + str(123))

# Using format method to generate a string with the desired contents
print ("Type string: {}".format(123)) 

# Using Python3's implicit concatenation of its arguments, does not work the same in Python2:
print ("Type string:", str(123)) # Notice this will insert a space between the parameters
Run Code Online (Sandbox Code Playgroud)


Car*_*ten 6

请记住(或者如果你还不知道,请阅读这个主题)这print是Python 3中的一个功能.在Python 2中,您的第一行将连接"Type string:"和"123",然后打印它们.在Python 3中,您print使用一个参数调用该函数,该参数返回None,然后向其添加"123".这没有任何意义.

第二行不会在Python 2或3中生成错误(我已经使用2.7.7和3.2.3进行了测试).在Python 2中,你得到了

连接字符串和整数10

而在Python 3中,您的脚本应该只打印

连接字符串和整数

这是因为print是一个函数,因此您可以使用参数"Concatenate strings and ints"来调用它.将, 10让你的行返回值的元组print,这是None10.由于您没有使用该元组,因此没有明显的效果.