oliver Bergman oliver Bergman - 10 months ago 59
Python Question

Python3 for-loop even or odd

Hi i got stuck in an exercise i have in school. and could use some help.

Create a for-loop that goes through the numbers:


If the current number is even, you should add it to a variable and if the
current number is odd, you should subtract it from the variable.

Answer with the final result.

Here is my code so far.

def listnum(a):
for num in [67, 2, 12, 28, 128, 15, 90, 4, 579, 450]:
if (num%2):
a = a + num
a = a - num
return a


when i run this program i get the answer:

5.6 FAIL.
You said:
4 class 'int'>

the correct answer should be
if initial value of

can any one help me and tell what im doing wrong?
or maybe point me in the right direction.
thank you!


I think it would make more sense if your function input is the list and not the return value. Also (as others have noted) you need num % 2 == 0, and your indentation is not quite right. Try this instead:

def listSum(l):
  ans = 0
  for num in l:
    if num % 2 == 0:
      ans += num
      ans -= num
  return ans

Note that you could do this in a single line:

def listSum(l):
    return sum(i if i % 2 == 0 else -i for i in l)

print(listSum([67, 2, 12, 28, 128, 15, 90, 4, 579, 450])) prints 53 in both cases.