2016-01-09 82 views
1
File "stats0.py", line 40 
    def median(numbers): 
    ^
    SyntaxError: invalid syntax 
def median(numbers): 
    numbers.sort() 
    size = len(numbers) 
    midPos = size/2 
    if size%2==0: 
     median = (numbers[midPos]+numbers[midPos-1])/2.0 
    else: 
     median = numbers[midPos] 
    return median 

我不断收到此错误。我试过评论它,但每个“def”都有错误。我确实看过关于这个问题的每个先前的问题。据我了解我的缩进是正确的。请帮忙,这是我第一次收到这样的错误。 (正在按照书的代码)(蟒蛇)高清功能无效语法

+5

包含的部分之前是什么?错误在那里。 – Kevin

+1

赔率有利于未公开的一组分隔符;通常是parens,但是括号和括号(任何可以让语句继续到下一行的东西)也可以工作。 – ShadowRanger

+2

备注:您可以使用Python 3.4+免费获得此功能(https://docs.python.org/3/library/statistics.html#statistics.median)。此外,你的函数不适用于空列表,尽管空列表是否有中位数是值得商榷的。 – Kevin

回答

3

该错误将在函数的定义之前。在您的功能之前是否定义了任何代码。我能够获得上述程序的输出。 下面给出了可执行代码供您参考。

def median(numbers): 
    numbers.sort() 
    size = len(numbers) 
    midPos = size/2 
    if size%2==0: 
     median = (numbers[midPos]+numbers[midPos-1])/2.0 
    else: 
     median = numbers[midPos] 
    return median 


if __name__ == "__main__": 

    numbers = [1,2,3,4,5,6,7,8,9,10] 
    print median(numbers) 

Output Console: 

5.5 

Process finished with exit code 0 
+0

还存在问题,代码相同,主要功能相同格式及以上的所有功能。错误仍然指向def说无效。每次更改都保存并在终端中执行。 –

+0

你能分享你的代码 - 中位数以上的函数吗?或者你正在尝试执行什么 –