(Python)def函数中的语法错误:无效语法

4
  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
机会更大的是未关闭的分隔符集合;通常是括号,但花括号和方括号(任何允许语句继续到下一行的符号)也可以。 - ShadowRanger
2
附注:您可以在Python 3.4+中免费获得此函数(https://docs.python.org/3/library/statistics.html#statistics.median)。 此外,您的函数无法处理空列表,尽管空列表是否具有中位数仍有争议。 - Kevin
在这个中位数函数上面是其他函数,在下面是主函数。 - Zane
1个回答

4
错误会出现在函数定义之前。有没有在你的函数之前定义任何代码?我能够得到上面程序的输出。 以下是可执行代码供您参考。
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

仍然存在问题,代码相同,所有函数格式相同且在主函数之上。错误仍然指向def并显示为无效。每次更改后都会保存并在终端中执行。 - Zane
你能分享一下你的代码吗?特别是中位数上面的函数。或者你想要执行什么操作? - Rinsen S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接