我试图只打印选定数量的 Pi,它返回错误“十进制没有属性:__getitem__ [英] I am attempting to print only a selected amount of Pi, it returns with an error of "Decimal has no attribute: __getitem__
本文介绍了我试图只打印选定数量的 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屋!
查看全文