繁体   English   中英

Python3 for循环偶数或奇数

[英]Python3 for-loop even or odd

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

创建一个遍历数字的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

答案= a

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

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

正确的答案应该是53 ,如果初值a0

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

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

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

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

我认为如果你的函数输入是列表而不是返回值会更有意义。 另外(正如其他人所说)你需要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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM