python中的常数e的实现

359 阅读2分钟

1.通过math包

import math
print(math.e)

结果:

2.718281828459045

2.计算方法1:e=(1+1n)n计算方法1: e=(1+\frac{1}{n})^{n}

n=100000
e=(1+1/n)**n
print(e)

结果:

2.7182682371922975

3.计算方法2e=k=0n1k!计算方法2:e=\sum_{k=0}^{n}{\frac{1}{k!}}

def jiecheng(number):
    if number==1:
        return 1
    else:
        return number*jiecheng(number-1)
e=1
n=10
for i in range(1,n):
    e+=1/jiecheng(i)
print(e)

结果:

2.7182815255731922

第一种

i = 1 n = 1 e = 1 while 1 / n >= pow(10, -6): n *= i e += 1 / n i += 1 print(e) 1 2 3 4 5 6 7 8 第二种 递归算法实现阶乘

def fac(x): if (x == 1 or x == 0): return x; else: return x * fac(x - 1)

i = 1 s = 1 while 1 / fac(i) >= pow(10, -6): s = s + 1 / fac(i) i+=1 s = s + 1 / fac(i) print(s)

第三种

i = 1 n = 1 e = 0 while True: if 1 / n <= 10 ** -6: e += 1 / n break else: e += 1 / n s = 1; for j in range(1, i + 1): # 求n的阶乘 s = s * j n = s i += 1 print(e)

1 第四种

def sum(x):
    i = 1
    n = 1
    e = 1
    while 1 / n >= x:
        n *= i
        e += 1 / n
        i += 1
    return e
    
e = sum(pow(10, -6))
print(e)

第五种

def sum(x):
    i = 1
    n = 1
    e = 0
    while 1 / n >= x:
        e += 1 / n
        n *= i
        i += 1
    return e + 1 / n


e = sum(pow(10, -6))
print(e)
    n = 2
    c = int(input('请输入次数:'))
    e = 2
    for i in range(c):
        number1 = n
        number2 = number1-1
        number3 = number1*number2
        while number2 != 1:
            number2 = number2 - 1
            number3 = number2*number3
        e = e + 1/number3
        n = n + 1
    print(e)

calculate_e()#引用这个定义等于运行上面的程序


循环结构是编程中经常使用的语法,循环结构的巧妙使用对编程来说很重要。刚才群里还有同学说自己不会用循环,其实很简单,只是没有用过才觉得难。这里介绍Python循环语法的用法,并且使用两个小例子,来加强训练。

条件判断if语句

if语句,就像是数学中的是非,逻辑判断。主要用法如下:

1>>> a = 2

2>>> if a > 1:

3... print 'yes'

4... else:

5... if a == 1:

6... print '--'

7... else:

8... print 'no'

9...

10yes

else if 也可以定义成elif

While循环结构

1>>> sum = 0

2>>> i = 1

3>>> while i <= 100:

4... sum = sum + 1

5... i = i + 1

6...

7>>> sum

8100

这里计算1到100的和,通过变量i自增控制。

for循环结构

1>>> sum

2100

3>>> sum = 0

4>>> for i in range(1, 101):

5... sum = sum + 1

6...

7>>> sum

8100

这里range(1,101)产生1到100的序列,进行累加。