Python3 for循环偶数或奇数

时间:2016-09-14 16:11:43

标签: python python-3.x for-loop

嗨,我在学校里的练习中遇到了困难。并可以使用一些帮助。

创建一个遍历数字的for循环:

67,2,12,28,128,15,90,4,579,450

如果当前数字是偶数,则应将其添加到变量中,如果是 当前数字是奇数,你应该从变量中减去它。

回答最终结果。

到目前为止,这是我的代码。

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

ANSWER = a

当我运行这个程序时,我得到答案:

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

如果53的初始值为a,则正确答案应为0

是谁可以帮助我,告诉我做错了什么? 或者指出我正确的方向。 谢谢!

2 个答案:

答案 0 :(得分:0)

看起来你需要调整自己的状况。

def listSum(a):
  for num in [67, 2, 12, 28, 128, 15, 90, 4, 579, 450]:
    if(num % 2 == 0):  #subtle difference here.
      a += num
    else:
      a -= num
  return a

这将看到一个微妙的差异。

答案 1 :(得分:0)

我认为如果你的函数输入是列表而不是返回值会更有意义。另外(正如其他人所说)你需要num % 2 == 0并且你的缩进不太正确。试试这个:

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

请注意,您可以在一行中执行此操作:

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]))都会打印53