Error with return 4 instead of 4.5


#1

My code is:
def median(liste):
ordre=sorted(liste)
num1=ordre[len(ordre)/2]
num2=ordre[(len(ordre)-1)/2]
print ordre
if len(ordre) % 2 == 0:
med=(num1+num2)/2
return med
else:
med = float(num1)
return med

And i always have the error: median([4, 5, 5, 4]) returned 4 instead of 4.5


#2

try this

def median(liste):
    ordre=sorted(liste)
    num1=ordre[len(ordre)/2]
    num2=ordre[(len(ordre)-1)/2]
    print ordre
    if len(ordre) % 2 == 0:
        med=(num1+num2)/2.0 #changed this to 2.0
        return med
    else:
        med = num1
        return med

print median([1,2,3,4,4,2,3,5,6,6])

you can modify this to be

def median(liste):
    ordre=sorted(liste)
    num1=ordre[len(ordre)/2]
    num2=ordre[(len(ordre)-1)/2]
    print ordre
    if len(ordre) % 2 == 0:
        med=(num1+num2)/2.0
        return med
    else:
        return med

print median([1,2,3,4,3,2,3,5,6,6])