3 posts were split to a new topic: Why do I have to include the `/2`

in the `int()`

?

I solved this by making the two scenarios into variables; even and odd. Each variable finds their respective midpoints, which makes them easy to average and call in the control flow. There’s probably a more elegant way to solve this, though, haha.

```
def middle_element(lst):
even = int(len(lst)/2) - 1
odd = int(len(lst)/2)
if len(lst) % 2 != 0:
return lst[odd]
else:
return (lst[even]+lst[odd])/2
```

Rather than doing floating point arithmetic and rounding later, stick with integer operations:

```
# don't:
int(a / b)
# do:
a // b
```

Ah! Wasn’t aware of that operator. Thanks!

Would be worth the ten minutes or so it will take to research it further while it is fresh in your mind.

```
floor division
```

It’s important to note that floats have floors, too, and if one or both operands are a float, the result will be a float.

```
10.3 // 2 => 5.0
```

Only when both operands are integer, will the quotient be an integer.

I couldn’t remember how to fool python into accounting for odd or even (that was a few excercises ago), so I hit the “see solution” button. It wrote this:

```
#Write your function here
def middle_element(lst):
if len(lst) % 2 == 0:
sum = lst[int(len(lst)/2)] + lst[int(len(lst)/2) - 1]
return sum / 2
else:
return lst[int(len(lst)/2)]
#Uncomment the line below when your function is done
print(middle_element([5, 2, -10, -4, 4, 5]))
```

and when I hit solve it printed out: -7.0

I thought the program was supposed to show the middle 2 elements when even. -7.0 isn’t even the middle 2 added or subtracted from each other. So what the H? Did I fully misunderstand the exercise, or was the solution wrong?