我正在为即将到来的考试练习上一道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')
程序显示的输出为:
"教科书重量(kg(:0.5
教科书重量(kg(:0.65
教科书重量(kg(:1.35
教科书重量(kg(:1650000000001
教科书重量(kg(:1.9000000000000001">
但我需要的输出是:
仅1.9,没有前面的行。
由于我还是一个初学者,我对正确的代码知之甚少。因此,任何帮助都将不胜感激
您的问题在于缩进。您应该在整个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