当我在PyScripter上运行我的程序时,我得到预期的4.5
中位数。但是,在Ideone as here或codeacademy上运行相同的代码会返回4
。知道为什么会有不同的结果吗?感谢。
#Create a function that returns the median of a list of numbers
def median(list_of_numbers):
#Make a copy of list_of_numbers and sort the new list
lst = list_of_numbers
lst = sorted(lst)
#Get the length of list and use it to index through the list
lst_length = len(lst)
index = int(lst_length/2)
#If length if even, average the two middle numbers
if lst_length%2==0:
a= lst[index-1]
b = lst[index]
result = (a+b)/2
#If length is odd, return the middle number
else:
result = lst[index]
return result
print (median([4, 5, 5, 4]))
我的PyScripter版本:win32上的 * Python 3.3.5(v3.3.5:62cf4e77f785,2014年3月9日,10:37:12)[MSC v.1600 32位(英特尔)]。 *
答案 0 :(得分:1)
对于Python 2.x,您需要将2
的两个匹配项替换为2.
,以强制执行浮点除法。
您与ideone的链接是Python 2.x,显然您的codeacademy解释器也是如此。
答案 1 :(得分:0)
import statistics as s
def mid(data):
return(int(s.median(data)))
middle = mid([3,4,6,3,12,6,45,32,78])
print(middle)
我使用统计模块。如果您希望输出为整数或浮点数,只需将其转换为(float()或int())。