我要求在这个特定问题上做的是从文本文件(天气数据)中删除值,我可以这样做,然后将每行的数字24-26相加(在天气数据中,数字24- 27表示当天的总降水量)。这是我到目前为止所拥有的。
inputFilename="weather.dat"
inputFile=open(inputFilename, "r")
for line in inputFile:
line=line.strip()
for item in line:
q=0
q=int(line[24:27])
total=q+q
print("total precipitation: ",total)
我绝不是专家。跑完之后我得到1120的答案,当我得到3164的答案时,我真的想不出从这里去的地方。
答案 0 :(得分:1)
line[24:27]
表示三个字符,索引为24,25和26的字符。在Python中,"右侧边界排除"是常态。
不清楚你的意思是"数字24-27" (包含或排除上限?IOW,是三个字符,还是四个?)但如果您的意思是"上限包括",只需将切片更改为line[24:28]
。
答案 1 :(得分:0)
看起来你正在循环中定义total=q+q
。这将一遍又一遍地将每行的值(实际上是值的两倍)分配给total
,而不是维持一个运行总计。
此外,我不确定我理解你为什么要for item in line
。这将迭代每行中的每个字符。如果你知道沉降将在line[24:27]
,那么你可以迭代每一行并添加这些数量,而不是遍历每一行然后遍历每个字符。它不必要地重复工作。