在Python2.x中使用print()(函数版本)

2024-05-11 15:02:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我理解语句和表达式之间的区别,并且理解Python3将print()转换为函数。

然而,我在各种Python2.x解释器上运行了一个print()语句,它被括号包围,运行得非常完美,我甚至不需要导入任何模块。

我的问题是:下面的代码print("Hello SO!")是作为Python2.x中的语句还是表达式计算的?


Tags: 模块函数代码helloso表达式语句解释器
3条回答

它仍然作为一个语句进行计算,您只需打印("Hello SO!"),因为它不是元组(如delnan所述),所以它的计算结果是"Hello SO!"

print("Hello SO!")被计算为语句print ("Hello SO!"),其中print语句的参数是表达式("Hello SO!")

如果要打印多个值,这可能会有所不同;例如print("Hello", "world")将打印2元素元组('Hello', 'world'),而不是两个字符串"Hello""world"

为了与Python 3兼容,请使用from __future__ import print_function

>>> print("Hello", "world")
('Hello', 'world')
>>> from __future__ import print_function
>>> print("Hello", "world")
Hello world

请考虑以下表达式:

a = ("Hello SO!")
a = "Hello SO!"

它们是等价的。同样,在声明中:

statement_keyword("foo")
statement_keyword "foo"

也相当于。

请注意,如果将打印功能更改为:

print("Hello","SO!")

您将注意到python 2和python 3之间的区别。在python 2中,由于print是一个语句,所以(...,...)以元组的形式进行解释,而在python 3中,它是一个带有多个参数的函数调用。

因此,要回答手头的问题,print在python 2.x中被计算为语句,除非您from __future__ import print_function(在python2.6中引入)

相关问题 更多 >