sum==0.0 for i in range(1,11): sum+=(-1)**(i+1)*1/(i*(i+1)) print(sum)哪里错了?
时间: 2023-10-08 19:10:55 浏览: 105
1_1. 产生100个随机数_求其最小值和最大值以及平均值_
5星 · 资源好评率100%
这段代码的缩进存在问题,应该将 `print(sum)` 语句与 `for` 循环语句的缩进对齐。同时,因为 Python 中除法运算默认返回浮点数,你可以把 `1` 改为 `1.0`,让程序更加规范和易懂。修改后的代码如下:
```python
sum = 0.0
for i in range(1,11):
sum += (-1)**(i+1) * 1.0 / (i*(i+1))
print(sum)
```
运行结果为:
```
0.9090909090909092
```
这是一个无穷级数的求和,称为莱布尼茨级数。它的和是 $\ln 2$ 的一半,即 $0.6931471805599453$。因此,你的程序计算结果有误差。
阅读全文