为考试练习python任务?
我正在为即将到来的考试练习上一道python考试题,但我的代码很糟糕为考试练习python任务?,python,python-2.7,Python,Python 2.7,我正在为即将到来的考试练习上一道python考试题,但我的代码很糟糕 任务是创建一个文本文件,其中包含以克为单位的权重列表(完成) 提示用户输入文件名、读取权重、将其添加到列表中并计算总权重 问题就在这里: try: file = input('Enter file name:') f = open('weights.txt', 'r') sum=0 for line in f: sum = sum+(int(line.strip()))/1000
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.650000000000001
教科书重量(千克):1.900000000000001“
但我需要的输出是:
仅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
您的问题在于缩进。您应该在整个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
你能详细说明问题的具体内容吗?还是预期输出?预期输出为1.9kg这只是浮点不准确,您只需要将数字四舍五入到更合适的位置(例如小数点后两位)。您可以通过
round(output,2)
进行说明,这里解释了浮点不精确性这是一个非常不适合初学者的答案。您能详细说明问题的具体内容吗?还是预期输出?预期输出为1.9kg这只是浮点不准确,您只需要将数字四舍五入到更合适的位置(例如小数点后两位)。您可以通过round(output,2)
进行说明,这里解释了浮点不精确性。这是一个非常不适合初学者的答案。您可以解释一下格式,以便我能够记住和理解何时应用吗?@topu{}
标记您想要用格式
的参数替换的位置,:
表示要格式化参数,.2f
表示精度为2位的浮点。有关mor的用法,请参考一些教程网站,如P.S.下次不要使用这样的问题标题,请参见您能否解释格式以便我能够记住和理解何时应用?@topu{}
标记您要替换为格式
参数的位置,:
表示要格式化参数,.2f
表示精度为2位的浮点。关于mor的用法,请参考一些教程网站,如P.S.下次不要使用这样的问题标题,请参阅