如何在Python中获取范围函数中所有数字的总和?

时间:2011-02-11 00:17:05

标签: python python-3.x

我无法弄清楚如何取x(从下面的代码中)并将其添加到自身以获得总和,然后除以等级数。课堂上给出的例子是4个等级,数字是3,4,1和2.平均等级应该是2.5,但我似乎无法做到正确!

number_of_ratings = eval(input("Enter the number of difficulty ratings as a positive integer: "))       # Get number of difficulty ratings
for i in range(number_of_ratings):      #   For each diffuculty rating
    x = eval(input("Enter the difficulty rating as a positive integer: "))      # Get next difficulty rating
average = x/number_of_ratings
print("The average diffuculty rating is: ", average)

2 个答案:

答案 0 :(得分:3)

您的代码不会添加任何内容,只会在每次迭代中覆盖x。可以使用+=运算符向变量添加内容。另外,请勿使用eval

number_of_ratings = int(input("Enter the number of difficulty ratings as a positive integer: "))
x = 0
for i in range(number_of_ratings):
    x += int(input("Enter the difficulty rating as a positive integer: "))
average = x/number_of_ratings
print("The average diffuculty rating is: ", average)

答案 1 :(得分:1)

try:
    inp = raw_input
except NameError:
    inp = input

_sum = 0.0
_num = 0
while True:
    val = float(inp("Enter difficulty rating (-1 to exit): "))
    if val==-1.0:
        break
    else:
        _sum += val
        _num += 1

if _num:
    print "The average is {0:0.3f}".format(_sum/_num)
else:
    print "No values, no average possible!"