首页 > 解决方案 > 当列表中出现相同的值时如何停止循环?

问题描述

我的任务截图

以上是我的任务。当相同的项目出现在列表中时,我必须停止循环,然后我必须对它们求和。

def squareA(a,b):
  res = []
  z = 0

  while z!= 3:

     res.insert(0,(a + z)**2)
     res.insert(0,(b - z)**2)
     z += 1

  print(res)
  res = list(dict.fromkeys(res))
  print(res)
  res = sum(res)

  return res

a = 5
b = 6
print(squareA(a,b))

标签: pythonpython-3.xlistmathwhile-loop

解决方案


我想你可能想多了。而不是从两端附加正方形 - 同时从 a 向上和从 b 向下工作,您可以执行以下操作:

def square(a, b):
    rv = a**2
    for i in range(a, b):
        rv+= (i+1)**2
    return rv

或使用示例代码中的列表:

def square(a, b):
    rv = [a**2]
    for i in range(a, b):
        rv.append((i+1)**2)
    return sum(rv)

推荐阅读