编写无函数/模块的Python程序估算数学常数e(仅用循环)
不用函数/模块,纯循环估算e的前10项和
Hey there! 作为刚入门Python的新手,想要完全不用函数或模块,只靠while或for循环来估算数学常数e的前10项和,这个需求很明确,我来给你一步步拆解实现方案~
核心思路回顾
e的估算公式是:
e = 1 + 1/1! + 1/2! + 1/3! + ...
我们需要计算前10项,也就是:1 + 1/1! + 1/2! + ... + 1/9!(初始的1是第1项,之后到1/9!是第10项)
关键技巧:不用单独计算每个阶乘(避免重复运算),而是在循环中逐步更新阶乘值——比如算完1!后,乘2就得到2!,乘3得到3!,以此类推,效率更高。
方案1:用for循环实现
这是最直观的写法,直接控制循环次数:
# 初始化e的初始值,对应公式的第一项1 e = 1.0 # 初始化阶乘变量,从1!开始 factorial = 1 # 循环9次,计算从1/1!到1/9!的9个项,加上初始的1正好10项 for i in range(1, 10): factorial *= i # 逐步更新阶乘:i=1时是1!,i=2时是2!,以此类推 e += 1 / factorial # 将当前项的倒数加到e中 # 输出结果 print("前10项估算的e值为:", e)
方案2:用while循环实现
如果更习惯while循环的逻辑,也可以这样写:
e = 1.0 factorial = 1 count = 1 # 记录当前计算的是第几个额外项(从1!开始) # 要凑够10项,初始的1是第1项,所以还需要计算9个项 while count < 10: factorial *= count e += 1 / factorial count += 1 # 计数器加1,推进到下一个阶乘 print("前10项估算的e值为:", e)
关键说明
- 全程没有使用任何自定义函数或第三方模块(
print是Python内置的输出工具,不属于限制范围) - 阶乘采用逐步累积的方式,避免了重复计算,比每次重新计算阶乘更高效
- 严格控制了10项的数量:初始的
1是第1项,后续循环计算9个项,总和正好是10项
内容的提问来源于stack exchange,提问作者Ugur
相关产品推荐
相关产品推荐

