我正在尝试打印三个数字的中位数但是当测试用例例如数字2,1,2时它没有给出,但是当我尝试2,2,1它给出了正确的答案,即2,那么如何修复此代码?
def median(a,b,c):
if a>b:
if a>c:
if b>c:
return b
else:
return c
elif c>a:
if a>b:
return a
else:
return b
elif b>a:
if b>c:
if a>c:
return a
else:
return c
elif c>b:
if a>b:
return a
else:
return b
elif a==c:
return a
elif a==b:
return a
elif b==c:
return b
print(median(2,1,2))
答案 0 :(得分:0)
通过您的函数关注这些值:
def median(2, 1, 2):
if 2 > 1: # yes
if 2 > 2: # no
...
elif 2 > 2: # also no
...
# no 'else' here, and
... # other 'elif' choices never run
# fall out of function - implicit 'return None'
你根本就不处理那个案子!
您的程序的分支结构很难阅读,并且(显然!)容易出错。更仔细地考虑你想要实现的目标 - 这是一种更简单的方法。