我构建了一个函数来计算中间值(正如名字所示)。你知道吗
函数接收实例[4,5,5,4]的int列表,并应输出4,5。你知道吗
代码:
def median(lst):
lst.sort()
a=int(len(lst)/2)
if len(lst) % 2 == 0:
med=float((lst[a]+lst[a-1])/2)
else:
med=lst[a]
return med
print(median([4,5,5,4]))
这在使用python3.x时可以正常工作,但在python2.x中不行。我做错了什么?你知道吗
Tags:
问题是您假设除法运算符在python2和python3中是相同的。相反(改编自mhlester):
在python2中,/是整数除法(intinputs);
在python3中,/是浮点除法;
在python2和python3中,//是整数除法。
为了实现你想要的,有不同的解决方法。例如:
可以确保至少有一个除法操作数是浮点数。例如:
您可以使用import
from __future__ import division
(这需要在任何其他导入之前完成)。例如:相关问题 更多 >
编程相关推荐