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

在Python中,如何获取范围函数中所有数字的总和?,python,python-3.x,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_ra

我不知道如何取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)

您的代码没有添加任何内容,只是在每次迭代中覆盖
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)

非常感谢你!这是我的第一次编程经验,这对我有很大帮助。这也非常有效,而且更加简洁:
x=sum(int(input('Enter the diffness rating as a positive integer:'),对于i in range(number of of ratings))
你可以用数学来解决这个问题<代码>n*(n+1)/2=总和(范围(n+1))。这对于n的大值可能很有用。@raz:在计算平均值时,你在哪里需要这个公式?@Philipp:只需将其分为
n
(项数)和
(n+1)/2=avg(范围(n+1))
@raz:我认为这不是OP想要的。他想在一系列输入数据上求平均值,而不是在Python范围内求平均值。@Philipp:你说得对。对不起,我没有看完问题。我只是认为总和在1到n之间。
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!"