我使用的是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