python:用循环程序计算底数e的值

img


求用python程序,利用循环结构设计计算底数e的值
希望能够有注释,初学者想要看懂,谢谢啦

计算e的python代码如下:


e = 1
n = 1
f = 1
while f>=10**-6:
    # 计算阶乘
    factorial = 1
    for i in range(1, n + 1):
        factorial *= i

    f = 1.0/factorial
    # 累加e的值
    e = e + f
    n += 1

print("底数 e 的值为:", e)

运行结果:

img

在程序中,我们使用变量 factorial 来计算阶乘,使用变量 e 来记录 taylor 公式的值。然后使用 for 循环计算 n 项,将每一项的结果加到 e 中即可。

运行程序后,输入项数,即可计算出底数 e 的近似值。

def compute_e(n):
    e = 1
    factorial = 1
    for i in range(1, n+1):
        factorial *= i
        e += 1 / factorial
    return e

n = int(input("请输入计算 taylor 公式的项数:"))
e = compute_e(n)

print("底数 e 的值为:", e)

def compute_e():
    # 上次计算的e值
    last_e = 0
    # 本次计算的e值
    cur_e = 1
    # 差值 10的-6次方,1.0e-6是Python科学计数的表示
    diff = 1.0e-6

    n = 1
    # 表示1/n!
    factorial = 1

    while abs(cur_e - last_e) > diff:
        factorial /= n
        # 更新last_e
        last_e = cur_e
        # 计算新值
        cur_e += factorial
        # 每次循环n逐增1
        n += 1

    return cur_e

print("底数 e 的值为:", compute_e())

相应的n越大e的值就越接近题目中所给的值,试着改小diff,diff = 1.0e-8,看看测试结果