为什么以下代码显示输出`(' jen','生活在',' Dhaka')`而不是 - jen生活在达卡?

时间:2015-12-10 18:31:32

标签: python python-2.7

print(name, 'lives in', location)

为什么显示输出:

('jen', 'lives in', 'Dhaka')   

而不是

jen lives in dhaka

?为什么是逗号和引号不能省略?为什么输出中有括号?

2 个答案:

答案 0 :(得分:1)

在python 2.7中,print是一个语句,不需要括号。这意味着

print(name, 'lives in', location)

相当于

x = (name, 'lives in', location)
print x

x是一个元组。打印元组时,括号是可见的。如果元组包含字符串,则字符串的引号可见。

如果您不希望print语句打印元组,请不要给它一个元组。留下括号。

>>> print name, "lives in", location
jen lives in Dhaka

答案 1 :(得分:1)

谨防print是Python2和Python3之间的差异之一。在Python3中,print是一个函数,print(name, 'lives in', location)将打印jen lives in dhaka

但在Python2中,print是一条指令,因此print(name, 'lives in', location)打印元组(因为逗号)(name, 'lives in', location)('jen', 'lives in', 'Dhaka')结尾。

要获得预期输出,可以省略括号:

print name, 'lives in', location

或使用join来连接字符串

print(''.join(name, 'lives in', location))

因为外括号的内容只是一个字符串(没有逗号),所以它们在Python2中变得无害