python例题求助
求数列前10项的和:s=1-1/2!+1/3!-1/4!+1/5!… 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)
或者这样也行 s=1-1/2!+1/3!-1/4!+1/5!------1/s!这个数列? 本帖最后由 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>
这个对吗? 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
是这个意思吗你的题目不太清楚
jcpython2 发表于 2022-10-13 09:54
或者这样也行
10! 是 10 的阶乘的意思 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) 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:35
运行结果为:
其实range那个可以不用把1去掉,最后计算sum时,直接num02-num01 也是一样的 简短一点的话import math;print(sum())python -c 'import math;print(sum())'
0.6321205357142857 def test():
x = []
for i in range(10):
i += 1
# i 为偶数
if i % 2 == 0:
i = 1 / i
x.append(i)
return sum(x) 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]