Python 3.10.6:调用用户定义函数时出现语法错误和名称错误



我使用的是Python IDLE Shell 3.10.6,发生这种情况:

def math(x,y):
return x*y
math(1,2)
SyntaxError: invalid syntax
math(1,2)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
math(1,2)
NameError: name 'math' is not defined

这是因为Python 3.10.6有不同的语法吗?我在Jupyter笔记本上试过同样的东西,效果很好。

有人能帮我吗?提前谢谢!

这与Python语法无关,而是IDLE交互式shell的怪癖。

在交互式shell中,您需要用ENTER键将函数的定义和调用分离为单独的条目,即不这样它就可以读取

>>> def math(x,y):
return x*y
math(1,2)
SyntaxError: invalid syntax

(因为它试图解析函数以包含一个尾随的、未缩进的行(

但相反,它读取

>>> def math(x,y):
return x*y
>>> math(1, 2)
2

最新更新