Python中的语法错误无效

问题描述:

今年秋天我开始在Uni Comp Sci课程(从零编程知识开始),所以我刚开始玩编程。我正在阅读一本书并尝试复制粘贴一些代码 - 但它不起作用。以下是我的尝试:Python中的语法错误无效

>>> def function(x): 
    return x+2 
function(2) 
SyntaxError: invalid syntax 

突出显示“功能”一词。我很困惑,因为本书中使用了相同的示例,它看起来可行,但在我的结尾却出现了这个错误。这里发生了什么?

+0

祝你好运!知道在哪里寻求帮助对于任何事情来说都是一个好的开始,Stack Overflow有很多可用的帮助。我建议阅读现有的问题,看看其他人如何使用该语言,并了解Python代码的外观。 – 2012-08-10 01:12:18

+0

我会在这里主要推荐使用互联网来教你自己编程。去http://docs.python.org并通过那里的教程。这是我学习的方式,我怀疑许多频繁使用此网站的人。 – Droogans 2012-10-04 02:27:11

我假设你打算把Python放在标题中。 Python具有有趣的语法规则,因为在解析程序时,它实际上将空白计为有意义的。我的意思是说,拥有额外的空间,换行符或制表符等实际上会改变程序的含义。仔细检查书中的示例,并确保书写了完全相同的(制表符,新行和所有)语法。它可能更接近于此:

def f(x): 
    return x + 2 

请注意新的行和选项卡。要调用此函数,请在另一行上说:

f(5) 

或者用任何您想要的参数替换5。

编辑:

所以完整的脚本应该是:

def f(x): 
    return x + 2 

f(2) 
+0

是的,但它强调“f”为语法错误。我不缩进“f(5)”,但它看起来应该是这样,所有其他空间也被正确放置,.. gahh这是疯狂的大声笑 – Colly 2012-08-09 19:44:16

您需要的功能定义与它的分离执行。另外,Python对行首的空格很敏感。试试这个(准确):

def function(x): 
    return x+2 
function(2) 

,或者在一个行(你不应该做;见the style guidelines):

def function(x): return x+2; function(2) 

,或在Python外壳:

>>> def function(x): 
    return x+2 

>>> function(2) 
4 

注意函数定义和它的用法之间的空行。定义该功能后,请按回车一次以获得提示。

这是针对使用Python 2.6.6和IDLE 2.6.6的用户。

由于Python解释器对空白和缩进非常敏感,我们需要将函数声明从执行中分离出来。

什么,你必须做:

>>> def square(input): 
    output=input*input 
    return output 
print square(5) 

输出:语法错误:无效的语法

正确的方式来做到这一点:

>>> def square(input): 
    output=input*input 
    return output 

>>> print square(3) 
9 

试试这个:

def function(x): 
    return x+2 
function(5) 

在python中,缩进很重要。他们是Python世界的{}

您实际上不需要在function(5)之前添加额外的空格,因为python知道不将它包含在函数定义中,因为它没有缩进。添加额外的空白行仍然是一个好习惯,但这不是绝对必要的。

+1

你是对的python剧本的情况下,但问题中的'>>>'表示提交者正在REPL中执行语句。在这种情况下,在使用该函数之前,需要一条空白行来结束先前的语句并开始新的语句。 – cgmb 2015-10-27 23:08:37