# Median - why is 2.0 needed here?

#1

I was having the hardest time with this exercise until i changed ‘2’ to '2.0’
As far as i know python will give you a float if you divide using one slash, except when using two slashes, when it will round down, so why does adding .0 after the two makes a difference?

``````

def median(get):
sort_list = sorted(get)
if len(get) % 2 == 0:
index1 = len(sort_list) / 2 - 1
index2 = len(sort_list) / 2
med = sort_list[index1] + sort_list[index2] / 2.0 #This two right here, used to be an int
return med
elif len(sort_list) % 2 != 0:
index = len(sort_list) // 2
return sort_list[index]

``````

#2

this is true for python3, for python2 a division that involves two integers (`9 / 2`) will round down to the nearest integer, this does not happen when division involves a float (`2.0`)

#3

I thought codecademy used python 3+ ? and also, what happens when it’s for example 5 / 2? 2.5 will round up or down? thanks for the help.

#4

i said:

down is the keyword there, python floors the result, but if i say floor, it seems to confuse many people (especially non-native english speakers), so i switched to rounds down

well, its very simple to test:

``````import sys
print sys.version
``````

but the fact that you can use `print` without parentheses should already tell you its python2. In python3, print is a function call, so it won’t work without parentheses

#5

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.