# -×- coding:utf-8 -*-
import itertools
def pi(N):
num = []
num_2 = []
#创建一个奇数列
natuals = itertools.count(1) #itertool模块count(1)方法可以创建一个自然序列惰性迭代器
for n in natuals:
if n%2 !=0:
num.append(n)
#取奇数列的前N项
if len(num) == N:
break
#对奇数列的偶数项变为负值
for i in range(N):
if i%2!=0:
num[i]=-num[i]
#用4除以添加符号后的奇数列
for x in num:
y = 4/x
num_2.append(y)
#最后求和
return sum(num_2) #sum()函数,参数为一个列表
print(pi(10))
print(pi(100))
print(pi(1000))
print(pi(10000))
assert 3.04 < pi(10) < 3.05
assert 3.13 < pi(100) < 3.14
assert 3.140 < pi(1000) < 3.141
assert 3.1414 < pi(10000) < 3.1415
print('ok')
import itertools
def pi(N):
num = []
num_2 = []
#创建一个奇数列
natuals = itertools.count(1) #itertool模块count(1)方法可以创建一个自然序列惰性迭代器
for n in natuals:
if n%2 !=0:
num.append(n)
#取奇数列的前N项
if len(num) == N:
break
#对奇数列的偶数项变为负值
for i in range(N):
if i%2!=0:
num[i]=-num[i]
#用4除以添加符号后的奇数列
for x in num:
y = 4/x
num_2.append(y)
#最后求和
return sum(num_2) #sum()函数,参数为一个列表
print(pi(10))
print(pi(100))
print(pi(1000))
print(pi(10000))
assert 3.04 < pi(10) < 3.05
assert 3.13 < pi(100) < 3.14
assert 3.140 < pi(1000) < 3.141
assert 3.1414 < pi(10000) < 3.1415
print('ok')