2014-09-12 129 views
0

任何人都可以帮忙吗?在Python中查找平均值

import math 
a = int(raw_input('Enter Average:')) # Average number probability 
c = int(raw_input('Enter first number:')) # 
d = int(raw_input('Enter last number:')) # 
e = 2.71828 
for b in range(c,d+1): 
    x = (a**b)/math.factorial(b)*(e**-a) 
    odd = round (1/x*0.92, 2) 
    print odd 

如何找到奇数的平均值?

+2

这将是很好,如果你能解释一下你的程序正在试图做的,你面对什么样的问题,以及我们如何能帮助。经常这样做可以帮助你解决你自己的问题。而且,尽可能多的,我们无法读懂头脑。 – Saish 2014-09-12 23:08:09

+2

你的问题很不清楚。你的目标是什么?什么平均值? – CoryKramer 2014-09-12 23:08:39

回答

2

你可以做两件事情:

  • 累加所有这些odd值到,例如,一个list,则平均的结果。
  • 保持跑步总数和分数。

(我假设,通过“平均”你的意思是“算术平均数”。如果你的意思是不同的东西,细节有所不同,但基本思路是一样的。)

对于第一:

odds = [] 
for b in range(c,d+1): 
    x = (a**b)/math.factorial(b)*(e**-a) 
    odd = round (1/x*0.92, 2) 
    print odd 
    odds.append(odd) 
print sum(odds)/len(odds) 

如果你没有什么sumlen做,阅读文档。

对于第二个:

total, count = 0, 0 
for b in range(c,d+1): 
    x = (a**b)/math.factorial(b)*(e**-a) 
    odd = round (1/x*0.92, 2) 
    print odd 
    total += odd 
    count += 1 
print total/count 
+0

就是这样,我忘了附加使用,非常感谢你:) – 2014-09-12 23:15:15

+0

而对于完全不可读的一(半)-liner:'a = int(raw_input(“probability:”));结果= sum([round(1 /((a ** b)/math.factorial(b)*(2.71828 **( - a)))* 0.92,2)for count,b in enumerate(range(int raw_input(“start:”)),int(raw_input(“end:”))+ 1),1)])/ count' – 2014-09-12 23:42:29

+0

(假设你在python2中,当然,因为iirc py3不会泄漏'count'在列表comp之外) – 2014-09-12 23:47:24