我正在为即将举行的考试练习上一个python考试问题,但是我的代码很麻烦。
任务是制作一个文本文件,其中包含以克为单位的重量列表(完成)。
提示用户输入文件名,读取重量,将其添加到列表中并计算总重量。
问题出在这里
try:
file = input('Enter file name:')
f = open('weights.txt', 'r')
sum=0
for line in f:
sum = sum+(int(line.strip()))/1000
print('The textbook weight in kg:', sum)
except:
print('File cannot be opened')
程序显示的输出为:
“教科书的重量(公斤):0.5
教科书的重量(公斤):0.65
教科书重量(公斤):1.35
教科书的重量(公斤):1.6500000000000001
教科书的重量(公斤):1.9000000000000001“
但是我需要的输出是:
仅1.9,没有前几行。
由于我仍然是初学者,所以我对正确的代码知之甚少。因此,我们将不胜感激
答案 0 :(得分:4)
您的问题在于缩进。您应该在执行整个for循环后打印结果,即
try:
file = input('Enter file name:')
f = open('weights.txt', 'r')
sum=0
for line in f:
sum = sum+(int(line.strip()))/1000
print('The textbook weight in kg:', sum)
except:
print('File cannot be opened')
对于浮点数不准确的情况,您也可以这样设置打印格式:
print('The textbook weight in kg:{:.2f}'.format(sum))
# The textbook weight in kg:1.90