我试图只打印选定数量的 Pi,它返回错误“十进制没有属性:__getitem__ [英] I am attempting to print only a selected amount of Pi, it returns with an error of "Decimal has no attribute: __getitem__

查看:49
本文介绍了我试图只打印选定数量的 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__'

推荐答案

pi 是一个 Decimal 时,您正试图将它视为一个数组.我认为您正在寻找 quantize:https://docs.python.org/2/library/decimal.html

You are trying to treat pi as an array, when it is a Decimal. I think you are looking for quantize:https://docs.python.org/2/library/decimal.html

这篇关于我试图只打印选定数量的 Pi,它返回错误“十进制没有属性:__getitem__的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆