2024-05-11 15:02:40 发布
网友
我理解语句和表达式之间的区别,并且理解Python3将print()转换为函数。
然而,我在各种Python2.x解释器上运行了一个print()语句,它被括号包围,运行得非常完美,我甚至不需要导入任何模块。
我的问题是:下面的代码print("Hello SO!")是作为Python2.x中的语句还是表达式计算的?
print("Hello SO!")
它仍然作为一个语句进行计算,您只需打印("Hello SO!"),因为它不是元组(如delnan所述),所以它的计算结果是"Hello SO!"。
("Hello SO!")
"Hello SO!"
print("Hello SO!")被计算为语句print ("Hello SO!"),其中print语句的参数是表达式("Hello SO!")。
print ("Hello SO!")
print
如果要打印多个值,这可能会有所不同;例如print("Hello", "world")将打印2元素元组('Hello', 'world'),而不是两个字符串"Hello"和"world"。
print("Hello", "world")
('Hello', 'world')
"Hello"
"world"
为了与Python 3兼容,请使用from __future__ import print_function:
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中引入)
它仍然作为一个语句进行计算,您只需打印
("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
:请考虑以下表达式:
它们是等价的。同样,在声明中:
也相当于。
请注意,如果将打印功能更改为:
您将注意到python 2和python 3之间的区别。在python 2中,由于print是一个语句,所以
(...,...)
以元组的形式进行解释,而在python 3中,它是一个带有多个参数的函数调用。因此,要回答手头的问题,
print
在python 2.x中被计算为语句,除非您from __future__ import print_function
(在python2.6中引入)相关问题 更多 >
编程相关推荐