我将在今年秋天开始在Uni开始Comp Sci课程(从零编程知识开始),所以我只是开始玩编程。我正在关注一本书并尝试复制粘贴一些代码 - 但它不起作用。这是我试过的:
>>> def function(x):
return x+2
function(2)
SyntaxError: invalid syntax
突出显示“功能”一词。我很困惑,因为书中使用了相同的例子,它似乎有效,但后来我得到了这个错误。这是怎么回事?
答案 0 :(得分:6)
您需要将函数定义与其执行分开。此外,Python对行开头的空白很敏感。试试这个(确切地说):
def function(x):
return x+2
function(2)
或者,在一行中(您不应该这样做;请参阅the style guidelines):
def function(x): return x+2; function(2)
或者,在Python shell中:
>>> def function(x):
return x+2
>>> function(2)
4
注意函数定义及其用法之间的空白行。定义函数后,按一次Enter键以获得提示。
答案 1 :(得分:3)
我假设你打算把Python放在标题中。 Python有一些有趣的语法规则,因为它在解析程序时实际上将空白空间视为有意义。我的意思是拥有额外的空间,换行符或制表符等实际上改变了程序的含义。仔细检查书中的示例,确保编写完全相同的(制表符,新行和所有)语法。它可能看起来更接近这个:
def f(x):
return x + 2
注意新行和标签。要调用此函数,请在另一行说:
f(5)
或用您想要的任何参数替换5.
修改强>
所以完整的脚本应该是:
def f(x):
return x + 2
f(2)
答案 2 :(得分:2)
试试这个:
def function(x):
return x+2
function(5)
在python中,缩进很重要。它们是蟒蛇世界的{}
。
实际上你不需要在function(5)
之前添加额外的空格,因为python知道不将它包含在函数定义中,因为它没有缩进。添加额外的空白行仍然是一种好习惯,但并非绝对必要。
答案 3 :(得分:0)
这适用于使用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