import math
from decimal import Decimal
def s(x):
return (Decimal(0.298**k))/Decimal(math.factorial(k))
prevSK = 0
sum=0
for k in (range(0,501)):
try:
a = (round(s(k),5))
r = (round(s(k)/prevSK,5))
print a
print r
prevSK = s(k)
summa = sum=sum+a
except Exception, e:
print e
prevSK = (Decimal(s(k),))
continue
print "The sum is:", summa
这是我在循环中使用5个元素运行此程序时得到的结果
x / 0
0.298
0.298
0.0444
0.149
0.00441
0.09933
0.00033
0.0745
The sum is: 0.34714
这到底有多远。我需要标记这些元素(a1,r1,a2,r2 ......),我无法弄清楚如何。
我需要那些元素从1到500,如果它可能在第二列r元素从1到500.
毕竟我必须总结一个元素,比如Summa =所有元素的总和。 (更新:已经找到了如何做到这一点,正如你在上面的代码中看到的那样)
如果有人可以帮助我,我会非常感激!
答案 0 :(得分:0)
不确定您是否要使用标签打印它们或将它们添加到列表中。
但你可以这样:
import math
from decimal import Decimal
def s(x):
return (Decimal(0.298**k))/ Decimal(math.factorial(k))
prevSK = 0
sum=0
valueList = {}
for k in (range(0,501)):
try:
a = (round(s(k),5))
r = (round(s(k)/prevSK,5))
print "a{n}: {a}".format(n=k, a=a)
print "r{n}: {r}".format(n=k, r=r)
valueList[k] = {"a{n}".format(n=k) : a, "r{n}".format(n=k) : r}
prevSK = s(k)
summa = sum=sum+a
except Exception, e:
print e
prevSK = (Decimal(s(k),))
continue
print "The sum is:", summa