Python print()输出差异

时间:2010-12-19 17:45:10

标签: python printing concatenation

我正在乱用python,遵循本教程:

http://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3/Hello,_World

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

print("Single String")
print("Concat", "String")

应该是这样的:

Single String
Concat String

但它看起来像这样:

Single String
('Concat', 'String')

这是为什么?我在OSX上使用Python 2.6。

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

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

7 个答案:

答案 0 :(得分:3)

print("Concat", "String")

这是tuple。当您放置,时,它变为tuple,因此Python以相同的方式输出它。

>>> t = ('Let', 'Us', 'Test')
>>> type(t)
<type 'tuple'>

元组由许多以逗号分隔的值组成。

答案 1 :(得分:2)

不是OP的原始问题的答案,我认为sukhbir回答得很好,但是对于后续问题。

我认为最快的升级方式是转到Python website并下载v3。

答案 2 :(得分:2)

如果您使用的是Python 2.x,则可以使用

print "Single", "String"

Python 3.x改变了打印的工作方式,以前它是一个声明,现在它是一个函数。

答案 3 :(得分:2)

为了兼容Python 2.7,您可以使用占位符

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

答案 4 :(得分:1)

原因是您正在使用Python 2运行Python 3。

答案 5 :(得分:1)

在Python 2.6中你也可以说

from __future__ import print_statement

获取3.x语法。

答案 6 :(得分:0)

要获得所需的行为,您需要打印元组的字符串表示形式。您可以通过在字符串上使用join方法来实现此目的:

print ' '.join(('a', 'b'))

行为不符合预期的原因是,在Python 2中,print是一个关键字。在Python 3中,它已被函数(也是print)取代,因此后一种语法调用函数而不是打印元组。您可以使用

复制在Python 3中看到的行为
print(('a', 'b'))

函数调用的一组括号,以及元组的一组括号。