2011-02-14 109 views
7

我得到无效的语法错误在我的Python脚本对于这一说法关于无效语法

44 f = open(filename, 'r') 
45 return 

return 
    ^
SyntaxError: invalid syntax 

奇怪的错误,我不知道究竟是错在这里?我是一个蟒蛇新手,所以如果有人可以请求帮助,我将非常感激。

我使用的版本2.3.4

+1

检查标签和空格混合的缩进。 – 2011-02-14 10:29:15

+5

@user:向我们展示更多代码,否则我们所能做的只是猜测。 – user225312 2011-02-14 10:30:58

+0

-1:没有足够的上下文来做任何事情比猜测更多。 – 2011-02-14 12:57:48

回答

6

获得“无效语法”在一个普通的return语句几乎是不可能的。如果你使用它的功能之外,你'return' outside function,如果有错误的缩进你IndentationError

的唯一途径,我可以得到一个return语句SyntaxError: invalid syntax,是如果它确实不如return,但如果它包含非ascii字符,如retürn。这给了这个错误。现在,你怎么能看到这个错误?再一次,我能想出的唯一想法是你实际上有缩进,但这个缩进不是空格或制表符。你可以例如以某种方式在代码中插入一个不间断的空间。

是的,这可能发生。是的,我遇到过这种情况。是的,你得到SyntaxError: invalid syntax

1
>>> 45 return 
    File "<stdin>", line 1 
    45 return 
      ^
SyntaxError: invalid syntax 
>>> 

这可能会解释它。它没有解释44 f = open(filename, 'r'),但我怀疑有人复制并粘贴了45行代码,其中缺少缩进并包含行号。

17

我有同样的问题。这里是我的代码:

def gccontent(genomefile): 
    nbases = 0 
    totalbases = 0 
    GC = 0 
    for line in genomefile.xreadlines(): 
     nbases += count(seq, 'N') 
     totalbases += len(line) 
     GC += count(line, 'G' or 'C') 
    gcpercent = (float(GC)/(totalbases - nbases)*100 
    return gcpercent 

“return'was无效语法

我只是未能收在下面的代码支架:

gcpercent = (float(GC)/(totalbases - nbases)*100 

希望这有助于。

2

通常这是一个括号语法错误。检查错误。

8

当我忘记关闭代码上的括号时,返回“Invalid Syntax”。

elif year1==year2 and month1 != month2: 
    total_days = (30-day1)+(day2)+((month2-(month1+1))*30 
    return (total_days)  

return上的语法无效。

((month2-(month1+1))*30 <---- there should be another bracket 

((month2-(month1+1)))*30 

现在我的代码工作。

他们应该改进Python来告诉你,如果你忘记关闭括号而不是返回“无效”语法。

2

我只是看着这个,因为我有同样的问题(计划返回语句无效的语法错误),我是非常新的蟒蛇(第一个月),所以我不知道我在做什么大部分的时间。

嗯,我发现我的错误,我忘记了前一行的结尾括号。尝试检查上一行的结尾是否有遗忘的括号或引号?