Python print()输出不一致

Python print()输出不一致,python,printing,concatenation,Python,Printing,Concatenation,我正在学习python,遵循本教程: 根据它,我的输出为以下代码: print("Single String") print("Concat", "String") 应该是这样的: Single String Concat String Single String ('Concat', 'String') 但看起来是这样的: Single String Concat String Single String ('Concat', 'String') 为什么会这样?我使用的是OSX和P

我正在学习python,遵循本教程:

根据它,我的输出为以下代码:

print("Single String")
print("Concat", "String")
应该是这样的:

Single String
Concat String
Single String
('Concat', 'String')
但看起来是这样的:

Single String
Concat String
Single String
('Concat', 'String')
为什么会这样?我使用的是OSX和Python2.6

编辑:我刚刚意识到指南是3.0版的,我有2.6版。这是问题的根源吗?升级Python安装的最快方法是什么

编辑2:升级修复了它:)接受的答案解释了差异

print("Concat", "String")
这是一个
元组。当您放置
时,
将成为一个变量,因此Python以相同的方式输出它

>>> t = ('Let', 'Us', 'Test')
>>> type(t)
<type 'tuple'>
>t=('Let','Us','Test')
>>>类型(t)
元组由许多用逗号分隔的值组成。

不是对OP最初问题的回答,我认为sukhbir回答得很好,而是对后续问题的回答


我相信最快的升级方式是转到并下载v3。

如果您使用的是Python2.x,您可以使用

print "Single", "String"

Python3.x改变了打印的工作方式,以前它是一个语句,现在它是一个函数。

原因是您正在使用Python2运行Python3教程。

要获得所需的行为,您需要打印元组的字符串表示。您可以通过对字符串使用
join
方法来实现这一点:

print ' '.join(('a', 'b'))
这种行为不符合预期的原因是,在Python2中,
print
是一个关键字。在Python3中,它被一个函数(也是
print
)替换,因此后一种语法调用该函数而不是打印元组。您可以使用复制在Python 3中看到的行为

print(('a', 'b'))

一组括号用于函数调用,一组括号用于元组。

在Python2.6中,您还可以说

from __future__ import print_statement

要获取3.x语法。

为了在
Python2.7
中实现兼容性,可以使用占位符

print('%s %s')%("Concat", "String")

还要注意,
print(“singlestring)”,
也将输出元组?就这一点而言,奇怪的是,为什么:打印(22/7)输出3?如果我使用//而不是/?@Josh
打印“concat”、“string”
,它不应该这样做吗。对于第二个问题,它从Python2.x更改为3。在Python2.x中,添加的
/
只是为了让开发人员适应它。
22/7
,两者都是整数,因此python将其输出为3<代码>/
是楼层划分。如果希望
22/7
等于
3.1428571428571428
,请从uuu future\uuuu导入部分执行
。这种行为在Python 3中已经改变,其中22/7默认值仅为3.1428571428571428。@Josh:很高兴我能帮忙。:-)啊!!所以,一旦我从2.6升级到3.1.3,我就可以像我所期望的那样使用print(“A”,“B”)?我想你的意思是,
print
在Python2.x中是一个语句,但在Python3中是一个函数。这是一个关键字,但这里比较的是语句和函数。关于升级:如果您对Python 2.6感到满意,那么就没有什么可升级的了,只需使用Python 2.x语法。我只使用Python 20分钟,所以我宁愿使用最新的语法来学习:)