请解释一下这个输出

时间:2016-12-19 19:02:28

标签: python python-2.7

print ("Hello" , "World")

输出为:('Hello','World')。为什么不只是Hello World? (我是python的新手.3周前开始学习。)

3 个答案:

答案 0 :(得分:4)

这是Python3和Python2之间为数不多的向后兼容的变化之一。

在Python2中,print是一个声明。在Python3中,它被转换为函数调用。 Python中的语句是这样的:

x = 3
import this
from math import pi

函数调用如下所示:

some_list.sort()
counter.most_common()

括号()意味着“称这个东西”。

如果您正在学习Python should learn with Python3,但如果您无法安装或不想出于任何原因,您可以使用__future__导入在Python2中获得此行为:

Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import print_function
>>> print('the future', 'looks better')
the future looks better

如果它在Python脚本中,它必须是文件中的第一个非注释行,但在repl(交互式解释器,带有>>>提示符的那个)中,您可以随时进行导入

答案 1 :(得分:2)

在python 2.7中我们有

WHERE `user_info`.`status` = ? LIMIT ?, ? 

输出:

print('hello', 'world')
print ('hello', 'world')
print ('hello , world')

Print是一个声明。哪个传递参数就像那样。因此,如果我们在括号内有一个对象,它可以正常工作。但是如果括号内有多个对象,它们将作为元组对象传递。元组将像元组一样打印出来。

基本上

('hello', 'world')
('hello', 'world')
hello , world

相同
print('a', 'b')

这就是你所期望的。

另一方面,在python 3中,Print是一个功能。所以你必须打电话给它。 基本上现在' hello',' world'不是一个元组。而是将多个参数分别传递给打印函数。

a = ('a', 'b')
print(a)
# or
print a

# output : ('a', 'b')

输出:

print('hello', 'world')

要在3.5中达到同样的效果,我们必须这样做

hello world

输出:

print(('hello', 'world'))

您可以在此处阅读更多内容:http://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html

答案 2 :(得分:-3)

因为你试图在python 2.7中使用print,pythont会暗示你要求它打印一个元组。要在python 2.7中输出hello world,您可以执行以下操作:

print "Hello", "World" # without the parentheses!

print "%s %s" % ("Hello", "World") 

甚至

from __future__ import print_function
print("Hello", "World")

如果您曾经或将要使用python 3而不是python 2,那么您已经可以使用打印功能而无需特殊导入。如果你想了解更多关于元组的信息,我建议你看一下这个元组link