2397293790 发表于 2022-10-13 08:46:23

python例题求助

求数列前10项的和:s=1-1/2!+1/3!-1/4!+1/5!…

jcpython2 发表于 2022-10-13 08:46:24

s='1-1/2!+1/3!-1/4!+1/5!'
total = 0
for i in s:
    if i.isdigit() == True:    #isdigit判断是否数字
      total += int(i)   #原为str,+会变成合并,转为int +变成运算
print(total)

或者这样也行

2971739074 发表于 2022-10-13 09:33:53

s=1-1/2!+1/3!-1/4!+1/5!------1/s!这个数列?

jackz007 发表于 2022-10-13 09:50:18

本帖最后由 jackz007 于 2022-10-13 09:56 编辑

def foo(n):
    s , b , f = 0 , 1 , 1
    for i in range(1 , n + 1):
      b *= i
      s , f = s + f / b , -f
    return s

print(foo(10))
      运行结果:
D:\\Python>python x.py
0.6321205357142857

D:\\Python>
      这个对吗?

jcpython2 发表于 2022-10-13 09:52:56

s='1-1/2!+1/3!-1/4!+1/5!'
ls = []
for i in s:
    if i.isdigit() == True:    #isdigit判断是否数字
      ls.append(int(i))      #原为str,加入转为int方便统计
print(sum(ls))                  #sum能求list和

输出
19

是这个意思吗你的题目不太清楚

jackz007 发表于 2022-10-13 10:17:04

jcpython2 发表于 2022-10-13 09:54
或者这样也行

       10! 是 10 的阶乘的意思

咸蛋黄呀 发表于 2022-10-13 10:23:52

s = 0
a = 1
n = 10
for i in range(1,n+1):
    a = a*i
    if i%2 == 0:
      s = s - 1/a
    else:
      s = s + 1/a
print(s)

lymww 发表于 2022-10-13 10:35:59

import math

'''
s=1-1/2!+1/3!-1/4!+1/5!…
求前10项目,那么n=10,
通过这个数列可观察到,偶数的减,奇数的是加,
于是我就设置2个变量分别接收前10项偶数的结果,与奇数的结果,最后在进行计算
我这里阶乘算法是使用的math模块中的factorial函数
'''

num01 = 0# 接收数列中所有偶数的和
num02 = 0# 接收数列中所有奇数的和
for i in range(2,11):# 因为是求前10项,所以就到11,又因为数列首项是1,就把1给剔除掉
    if i%2 == 0:# 判断是否为偶数
      num_01 = 1/math.factorial(i)
      num01 += num_01
    else:
      num_02 = 1/math.factorial(i)
      num02 += num_02

sum = 1 - num01 + num02
print('数列s=1-1/2!+1/3!-1/4!+1/5!… 前10项的和为:{}'.format(sum))


运行结果为:
数列s=1-1/2!+1/3!-1/4!+1/5!… 前10项的和为:0.6321205357142857

lymww 发表于 2022-10-13 10:42:29

lymww 发表于 2022-10-13 10:35
运行结果为:

其实range那个可以不用把1去掉,最后计算sum时,直接num02-num01 也是一样的

dolly_yos2 发表于 2022-10-13 10:55:53

简短一点的话import math;print(sum())python -c 'import math;print(sum())'
0.6321205357142857

PS的名字 发表于 2022-10-14 19:01:16

def test():
        x = []
        for i in range(10):
                i += 1
                # i 为偶数
                if i % 2 == 0:
                        i = 1 / i
                x.append(i)
        return sum(x)

wwx2216 发表于 2022-10-14 19:16:30

s=0
p=-1
for i in range(1,4):
    x=1
    for j in range(1,i+1):
      x=x*j
    s=p*(-1)*1/x
print(s)
页: [1]
查看完整版本: python例题求助