求中位数的代码,谁帮我看看哪里错了?

kgarnett29 2016-03-30 02:58:04
输入一个列表L,求它的中位数,如果是小数,保留一位


L.sort()
n = len(L)

if n % 2 == 0:
mediun = (L[n/2-1] + L[n/2]) / 2
if mediun == int(mediun):
print mediun
elif mediun != int(mediun):
print "%.1f" % mediun

elif n % 2 == 1:
mediun = L[(n+1)/2-1]
print mediun



#我的代码能通过,但是结果不对,哪位大哥帮忙看一下?

修改了代码后能算对了。请问还有什么美如画的方法能够表现“如果是小数,保留一位”的?
...全文
188 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kgarnett29 2016-03-30
  • 打赏
  • 举报
回复
额,我自己想了下,修改了一部分:
if n % 2 == 0:
    mediun = L[n/2-1] + L[n/2]
    if mediun%2 == 0:
        print mediun/2
    else:
        print mediun/2.0

else:
    mediun = L[(n+1)/2-1]
    print mediun
就对了。。。 并且多此一举使用了"%.1f"

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧