标记,编号循环元素+总结它们

时间:2014-11-30 19:12:36

标签: python-2.7

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 =所有元素的总和。 (更新:已经找到了如何做到这一点,正如你在上面的代码中看到的那样)

如果有人可以帮助我,我会非常感激!

1 个答案:

答案 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