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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python2.x中使用print()(函数版本)相关的知识,希望对你有一定的参考价值。

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

但是我在各种Python2.x解释器上运行了一个用括号括起来的print()语句,它运行完美,我甚至不需要导入任何模块。

我的问题:以下代码print("Hello SO!")是否被评估为Python2.x中的语句或表达式?

答案

请考虑以下表达式:

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(在python 2.6中引入)

另一答案

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
另一答案

它仍然被评估为一个声明,你只是打印("Hello SO!"),它简单地评估为"Hello SO!",因为它不是一个元组(如delnan所述)。

以上是关于在Python2.x中使用print()(函数版本)的主要内容,如果未能解决你的问题,请参考以下文章

Python2.x与Python3.x的主要区别(转)

序章.python2.x和python3.x的的选择

python中print()有啥用?

Python print() 函数

print在python中啥意思

Python print() 函数