This seems like a bug to me, but it could be me. It seems like my decimal points are being lopped off when I attempt to return a float value (as seen in the return float(12.5) below.
I would like to give some feedback about ...
From: http://www.checkio.org/mission/median/solve/
HTTP_USER_AGENT:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
My Code:
def checkio(data):
srt = sorted(data)
l = len(data)
print (srt)
if l % 2 == 1:
return srt[l // 2]
else:
print (srt[l // 2] , "+", srt[l // 2 - 1])
x = srt[(l // 2)]
y = srt[(l // 2 - 1)]
if (x + y)//2.0 == 12.5:
**return float(12.5)**
return (x + y)//2.0
#replace this for solution
return 'ERROR'
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio([1, 2, 3, 4, 5]) == 3, "Sorted list"
assert checkio([3, 1, 2, 5, 3]) == 3, "Not sorted list"
assert checkio([1, 300, 2, 200, 1]) == 2, "It's not an average"
assert checkio([3, 6, 20, 99, 10, 15]) == 12.5, "Even length"
print("Start the long test")
assert checkio(list(range(1000000))) == 499999.5, "Long."
print("The local tests are done.")
Created at: 2014/09/19 14:53; Updated at: 2014/09/19 20:58