[英]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
,如果初值a
是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
这将看到一个微妙的差异。
我认为如果你的函数输入是列表而不是返回值会更有意义。 另外(正如其他人所说)你需要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.