编程语言
首页 > 编程语言> > python – 我试图只打印一定数量的Pi,它返回错误“十进制没有属性:__ getitem__

python – 我试图只打印一定数量的Pi,它返回错误“十进制没有属性:__ getitem__

作者:互联网

def pi():
    prompt=">>> "
    print "\nWARNING: Pi may take some time to be calculated and may not always be correct beyond 100 digits."
    print "\nShow Pi to what digit?"
    n=raw_input(prompt)
    from decimal import Decimal, localcontext
    with localcontext() as ctx:
        ctx.prec = 10000
        pi = Decimal(0) 
        for k in range(350): 
            pi += (Decimal(4)/(Decimal(8)*k+1) - Decimal(2)/(Decimal(8)*k+4) - Decimal(1)/(Decimal(8)*k+5) - Decimal(1)/(Decimal(8)*k+6)) / Decimal(16)**k
    print pi[:int(n)]
pi()




Traceback (most recent call last):
  File "/Users/patrickcook/Documents/Pi", line 13, in <module>
    pi()
  File "/Users/patrickcook/Documents/Pi", line 12, in pi
    print pi[:int(n)]
TypeError: 'Decimal' object has no attribute '__getitem__'

解决方法:

当它是一个Decimal时,你试图将pi视为一个数组.我想你正在寻找量化:https://docs.python.org/2/library/decimal.html

标签:pi,python,python-2-7,python-2-x,magic-methods
来源: https://codeday.me/bug/20190930/1834323.html