今年秋天我将在 Uni 开始 Comp Sci 课程(从零编程知识开始),所以我刚刚开始玩编程。我正在读一本书并尝试复制粘贴一些代码 - 但它不起作用。这是我尝试过的:
>>> def function(x):
return x+2
function(2)
SyntaxError: invalid syntax
“功能”一词被突出显示。我很困惑,因为书中使用了相同的示例并且它似乎可以工作,但后来我得到了那个错误。这里发生了什么?
今年秋天我将在 Uni 开始 Comp Sci 课程(从零编程知识开始),所以我刚刚开始玩编程。我正在读一本书并尝试复制粘贴一些代码 - 但它不起作用。这是我尝试过的:
>>> def function(x):
return x+2
function(2)
SyntaxError: invalid syntax
“功能”一词被突出显示。我很困惑,因为书中使用了相同的示例并且它似乎可以工作,但后来我得到了那个错误。这里发生了什么?
您需要将函数定义与其执行分开。此外,Python 对行首的空格很敏感。试试这个(确切地说):
def function(x):
return x+2
function(2)
或者,在一行中(您不应该这样做;请参阅样式指南):
def function(x): return x+2; function(2)
或者,在 Python shell 中:
>>> def function(x):
return x+2
>>> function(2)
4
注意函数定义和它的使用之间的空白行。定义函数后,按回车键即可返回提示。
我假设您打算将 Python 放在标题中。Python 具有有趣的语法规则,因为它在解析程序时实际上将空格视为有意义的。我的意思是,拥有额外的空间、换行符或制表符等实际上会改变程序的含义。仔细检查本书示例并确保您编写的语法完全相同(制表符、新行和所有)。它可能看起来更接近于:
def f(x):
return x + 2
注意新行和标签。要调用此函数,请在单独的行上说:
f(5)
或将 5 替换为您想要的任何参数。
编辑:
所以完整的脚本应该是:
def f(x):
return x + 2
f(2)
尝试这个:
def function(x):
return x+2
function(5)
在 python 中,缩进很重要。他们是{}
蟒蛇世界的。
实际上,您之前不需要添加额外的空格,function(5)
因为 python 知道不将其包含在函数定义中,因为它没有缩进。添加额外的空白行仍然是一种很好的做法,但并非绝对必要。
这适用于使用 Python 2.6.6 和 IDLE 2.6.6 的用户。
由于 Python 解释器对空格和缩进非常敏感,我们需要将函数声明与执行分开。
你必须做什么:
>>> def square(input):
output=input*input
return output
print square(5)
输出:SyntaxError:无效语法
正确的做法:
>>> def square(input):
output=input*input
return output
>>> print square(3)
9