计算pi,itertools模块小练习Python3

# -×- 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')

猜你喜欢

转载自blog.csdn.net/sinat_41701878/article/details/79335028