python - python for循环来评估方程
问题描述
我被要求编写一个函数,该函数应返回1000 + 1/1**2 + 1/2**2 + 1/3**2 + 1/4**2 + ... + 1/n**2
给定整数 n 的以下系列的总和。例如,对于 n = 0,函数应该返回 1000,对于 n = 1,函数应该返回 1001,对于 n = 2,函数应该返回 1001.25,对于 n = 3,函数应该返回 1001.3611111111111,等等。
我确信这需要通过 for 循环和范围函数来完成。这是我的代码
if n<0:
return None
if n>0 or n==0:
for i in range(1,n-1):
result=1000+1/(i**2)
return result
但是当 n=o,1,2,3 时它一直返回 None 我不确定如何修复此代码...
解决方案
在每次迭代中,您不会result
使用它的先前值进行更新。(而且您result
过早返回。)使用result = result + 1 / (i ** 2)
或等效地更新变量result += 1 / (i ** 2)
。
def foo(n):
result = 1000
for i in range(1, n+1):
result += 1 / (i ** 2)
return result
print(foo(0), foo(1), foo(2), foo(3)) # 1000 1001.0 1001.25 1001.3611111111111
或者,使用(生成器)理解,
def foo(n):
return 1000 + sum(1 / (i ** 2) for i in range(1, n + 1))
推荐阅读
- javascript - 用于在 unpkg 中搜索包/库的 api,例如 cdnjsAPI?
- list - 如何使用列表中的项目作为 LISP 中函数的参数?
- c++ - 如果 x 的值定义为“int x;”会发生什么 和 y 的值定义为“int y = 1;” 并在 C++ 中使用 min(x,y)?
- python - 使用带有 SQL 语句的 for 循环插入多个递增 1 的值
- c++ - 接受可变参数 lambda 时的 std::function 签名
- android - 启动画面在 React Native Android 上快速变为白色
- node.js - Is there any solution to where I can check and handle if browser UI has been closed?
- javascript - Jquery - 单击时仅更改附加参数一次
- tensorflow - 组合多个张量流模型
- javascript - Javascript and Multiple Check All boxes