在Python中,如何获取范围函数中所有数字的总和?
我不知道如何取x(来自下面的代码)并将其自身相加以得到总和,然后除以评级数。课堂上给出的例子是4个等级,数字是3、4、1和2。平均评分应该是2.5分,但我似乎做得不对在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
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!"