[英]A simple python project with sum and average
我使用python 3,我必须创建一个程序,创建5到100的所有倍数,然后打印它们以及它们的平均值。我试过这个但是......
for i in range(0, 101):
if i % 5 == 0:
x = 0
x += 1
y = sum(i)
z = y/x
print(i)
print(z)
当我尝试这个时,我得到:
Traceback (most recent call last):
File "C:/Users/Chriskaf/Desktop/(3)count.py", line 5, in <module>
y = sum(i)
TypeError: 'int' object is not iterable
谢谢你的时间:)
一种可能的解决方案是创建一个保存所有值的列表。 然后应用sum
和average
:
total = []
for i in range(0, 101):
if i % 5 == 0:
total.append(i)
total_sum = sum(total)
total_average = sum(total)/len(total)
尝试这个:
counter = 0
sum_numbers = 0
for number in range(1,101):
if number % 5 ==0:
counter += 1
sum_numbers += number
avg = sum_numbers / float(counter)
print (number, avg)
输出:
(5, 5.0)
(10, 7.5)
(15, 10.0)
(20, 12.5)
(25, 15.0)
(30, 17.5)
(35, 20.0)
(40, 22.5)
(45, 25.0)
(50, 27.5)
(55, 30.0)
(60, 32.5)
(65, 35.0)
(70, 37.5)
(75, 40.0)
(80, 42.5)
(85, 45.0)
(90, 47.5)
(95, 50.0)
(100, 52.5)
您的代码有几个问题。
x
计数器在每次迭代时都被重置(它总是设置为0,之后设置为1) sum
(这里是错误代码) - 你不能sum
一个数字(这就是i
的意思) - 和函数描述是: sum(sequence [,start]) - > value返回一个数字序列的总和(NOT字符串)加上参数'start'的值(默认为0)。 当序列为空时,返回start。 y
除以一个int
(会导致最接近的圆int,我相信你想浮动结果) 希望有所帮助!
更妙的是,使用的范围 “台阶”参数,达到您想要的号码。 另外,不要重新计算总和。
total = [i for i in range(5, 101, 5)]
total_sum = sum(total)
total average = total_sum / len(total)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.