import random
f = open('yearlystep.txt','w') #write random steps for one year
for y in range(366):
x = random.randint(0,1000)
f.write(str(x)+'\n')
f.close()
f = open('yearlystep.txt','r') #calculate average steps per 30 days
total = 0
for x in range(12):
for y in range(30):
r = f.readline()
total += int(r)
avg = total/30
total = 0
print(avg)
f.close()
意外的输出:
如您所见,我正在尝试编写一个程序来计算每30天随机步骤的平均值。但是它没有得到正确的结果,因为平均值之一显示为1.0?我不知道发生了什么,我的逻辑和代码可能有问题。谁能用代码解释并描述我为我做错了什么?谢谢。
您的问题是您没有正确缩进这两行:
avg = total/30
total = 0
当它们应该位于外部时,这会将它们置于您的内部循环中。进行更正应该给出正确的结果。正如@Barmar指出的那样,您可以将作业移到total
月循环的开头,以避免重复。
for x in range(12):
total = 0
for y in range(30):
r = f.readline()
total += int(r)
avg = total/30
print(avg)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句