为考试练习python任务



我正在为即将到来的考试练习上一道python考试题,但我的代码很糟糕。

  1. 任务是制作一个文本文件,其中包含以克为单位的权重列表(已完成(。

  2. 提示用户输入文件名,读取权重,将其添加到列表中并计算总权重。

问题就在这里:

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

最新更新