用于循环偶数或奇数的Python 3
嗨,我被困在学校的一个练习中了。我需要一些帮助 创建一个遍历数字的for循环:用于循环偶数或奇数的Python 3,python,python-3.x,for-loop,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
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'>
如果a
的初始值为0,则正确答案应为53
谁能帮我说说我做错了什么?
或者给我指出正确的方向。
谢谢大家! 看来你主要需要调整你的状况
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
这将看到细微的差别 看来你主要需要调整你的状况
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,4579450])
在这两种情况下都打印53
。我认为如果您的函数输入是列表而不是返回值,则更有意义。另外(正如其他人所指出的),您需要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,4579450])
在这两种情况下都打印53
。如果(num%2==0)
,0在其他方面是错误的,请记住,python依赖于空格,所以在发布代码时,请小心您所提供的内容,@fallereneaper表示,您的返回当前将在第一次执行else块后结束您的函数。感谢您的进一步说明@dckuehn有时我忘了进入杂草中。如果(num%2==0)
,0是错误的,请记住,python依赖于空格,因此当您发布代码时,小心你给我们的东西。恕我直言,@fallereneaper说你的返回当前将在你的else块第一次执行后结束你的功能。感谢你进一步澄清@dckuehn有时我忘了进入杂草中。