【发布时间】:2020-02-07 21:53:32
【问题描述】:
我最初必须编写代码将 3 行写入一个名为 output.txt 的外部文本文件。第一行显示第一行的最小数量,第二行将显示第二行的最大数量,第三行将显示第三行的平均值。无论输入什么数字或长度,它仍然会显示所有最小值、最大值和平均值。
问题是代码仅将最后一个平均行写入输出文本文件。
我的讲师希望格式保持不变,但他有这些 cmets:
min和max行未写入输出文件。 这是因为您没有将值写入report_line变量,该变量存储要写入输出文件的字符串。尝试在 for 循环开始之前将
report_line初始化为空字符串。然后,您可以使用
+=运算符和换行符将输出存储在每次重复 for 循环时的report_line变量中。
我尝试了它们,但仍然得到相同的结果。仅打印平均线。
outfile = open("output.txt", "w")
with open("input.txt") as f:
report_line = ""
for line in f:
operator, data = line.lower().strip().split(":")
line = line.split(":")
operator = line[0].lower().strip()
data = line[1].strip().split(",")
newData = []
for x in data:
report_line+='n'
newData.append(int(x))
if operator == "min":
result = min(newData)
elif operator == "max":
result = max(newData)
elif operator == "avg":
result = sum(newData) / len(newData)
report_line = "The {} of {} is {}.\n".format(operator, newData, result)
outfile.write(report_line)
outfile.close()
输入:
min:1,2,3,4,5,6
max:1,2,3,4,5,6
avg:1,2,3,4,5,6
输出应该是:
The min of [1, 2, 3, 5, 6] is 1.
The max of [1, 2, 3, 5, 6] is 6.
The avg of [1, 2, 3, 5, 6] is 3.4.
【问题讨论】:
-
请出示
input.txt内容
标签: python for-loop external-data-source