我想计算中位数我不知道这里有什么问题 UPDATE:
def median(a,b,c):
if a>b:
if b>c:
return b
else:
if a>c:
return c
else:
return a
else:
if b<c:
return b
else:
if a>c:
return a
else:
return c
我的错误是:文件“prog.py”,第4行 返回b ^ IndentationError:预期缩进块
答案 0 :(得分:6)
你的缩进是错误的。每个else:
必须与其对应的if ...:
对齐,并且每个嵌套块必须缩进。
例如,
if a>c:
return c
else:
return a
应该阅读
if a>c:
return c
else:
return a
没有正确缩进的代码不是有效的Python。
P.S。整个功能可以重写如下:
def median(a, b, c):
return sorted((a, b, c))[1]
答案 1 :(得分:1)
你需要在第5行取消缩进else语句。空格在Python中很重要。
答案 2 :(得分:1)
您的else
需要与if
具有相同的缩进。这就是python如何知道块开始和结束的位置。
答案 3 :(得分:0)
第5行的else:
没有缩进以匹配第3行的if:
.Python是一种对空格敏感的语言。
答案 4 :(得分:0)
此
def median(a,b,c):
lst = [a, b, c]
lst.sort()
return lst[1]
可能效率较低,但更容易理解。
答案 5 :(得分:0)
你看到“返回b”的缩进程度是否小于“返回c”?修复它,它应该工作。