Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3-print()函数作为操作数不使用';是否在引发Syntaxer错误之前打印?_Python_Python 3.x - Fatal编程技术网

Python3-print()函数作为操作数不使用';是否在引发Syntaxer错误之前打印?

Python3-print()函数作为操作数不使用';是否在引发Syntaxer错误之前打印?,python,python-3.x,Python,Python 3.x,在我的代码中,我有嵌套的调用表达式,其中一个是print()函数。我知道print()返回None对象,并且None不是square(x)的有效参数,但是我很好奇为什么在引发语法错误之前不打印“2”。由于return语句始终是要调用的方法的最后一部分,解释器是否应该在返回None并意识到print(2)不是square()的有效操作数之前打印2 我的代码如下: from operator import add, mul def square(x): return mul(x, x)

在我的代码中,我有嵌套的调用表达式,其中一个是
print()
函数。我知道
print()
返回None对象,并且None不是
square(x)
的有效参数,但是我很好奇为什么在引发语法错误之前不打印“2”。由于return语句始终是要调用的方法的最后一部分,解释器是否应该在返回None并意识到
print(2)
不是
square()的有效操作数之前打印2

我的代码如下:

from operator import add, mul

def square(x):
    return mul(x, x)

add(4, square(print(2)))

提前谢谢你

Python 2上的预期行为:

  • 未打印该值
  • 引发未处理的
    语法错误

Python 3上的预期行为:

  • 值已打印出来
  • 引发未处理的
    类型错误

有证据表明您实际上是在Python2执行环境中运行的

这可能是因为您实际运行的是Python 2,
print
是一条语句。您应该得到的是
TypeError
,而不是
SyntaxError