Python 3中使用def、return编写函数报SyntaxError无效语法如何解决?

报错原因
你遇到的语法错误是Python交互式解释器(带>>>提示符的运行环境)的特有规则导致的:
在交互环境中定义带缩进的代码块(比如函数、循环、条件判断)时,必须在代码块最后一行结束后敲一次空行,告诉解释器当前代码块已经定义完成,回到顶层输入状态。你在写完return x*x之后直接输入了顶格的print语句,解释器会默认print仍然属于square函数的内部代码,缩进不匹配就会抛出SyntaxError。
正确操作方式
交互式解释器环境操作步骤
- 输入
def square(x):后按回车,解释器会自动生成缩进前缀 - 输入缩进后的
return x*x,按回车 - 直接再次按回车(不要输入任何内容),结束函数定义,此时会重新出现
>>>提示符 - 输入
print(square(4)),按回车即可得到正确输出
正确运行的交互示例如下:
>>> def square(x): ... return x*x ... >>> print(square(4)) 16
脚本文件运行注意事项
如果是将代码写在.py后缀的脚本文件中运行,不需要额外加空行,只要保证def和print语句都是顶格书写、缩进层级正确,即可正常运行。
内容的提问来源于stack exchange,提问作者Frankie win
相关产品推荐
相关产品推荐

