Discuss / Python / work 2333

work 2333

Topic source

Phioton

#1 Created at ... [Delete] [Delete and Lock User]
import itertools,logging
logging.basicConfig(level=logging.INFO)

def pi(N):
    natuals = itertools.count(1)
    nums = itertools.cycle((4,-4))
    def pi_series():
        while True:
            yield (next(natuals),next(nums))
    new_pi_series=list(itertools.takewhile(
    lambda x: abs(x[0])<= N, pi_series()))
    logging.info('the calc series is = %s' % str(new_pi_series[:2])+'<head-tail>'+str(new_pi_series[-2:]))
    pi_finite=0
    for nat, num in new_pi_series:
        pi_finite=pi_finite+(num/(2*nat-1))
    logging.info('the calculated pi is %s' % pi_finite)
    return pi_finite

  • 1

Reply