练习考试的python任务吗?

时间:2018-11-13 00:17:31

标签: python python-2.7

我正在为即将举行的考试练习上一个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')

程序显示的输出为:

“教科书的重量(公斤):0.5

教科书的重量(公斤):0.65

教科书重量(公斤):1.35

教科书的重量(公斤):1.6500000000000001

教科书的重量(公斤):1.9000000000000001“

但是我需要的输出是:

仅1.9,没有前几行。

由于我仍然是初学者,所以我对正确的代码知之甚少。因此,我们将不胜感激

1 个答案:

答案 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