Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于循环偶数或奇数的Python 3_Python_Python 3.x_For Loop - Fatal编程技术网

用于循环偶数或奇数的Python 3

用于循环偶数或奇数的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

嗨,我被困在学校的一个练习中了。我需要一些帮助

创建一个遍历数字的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'>
如果
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有时我忘了进入杂草中。