I understand the difference between a statement and an expression, and I understand that Python3 turned print() into a function.
However I ran a print() statement surrounded with parenthesis on various Python2.x interpreters and it ran flawlessly, I didn’t even have to import any module.
My question: Is the following code print("Hello SO!") evaluated as a statement or an expression in Python2.x?
Consider the following expressions:
They’re equivalent. In the same way, with a statement:
are also equivalent.
Notice that if you change your print function to:
You’ll notice a difference between python 2 and python 3. With python 2, the
(...,...)is interpteted as a tuple since print is a statement whereas in python 3, it’s a function call with multiple arguments.Therefore, to answer the question at hand,
printis evaluated as a statement in python 2.x unless youfrom __future__ import print_function(introduced in python 2.6)