【发布时间】:2019-05-12 01:28:11
【问题描述】:
我想逐行读取文件。这些行包含运算符和数字。如果是“+”,我将添加后面的数字,如果是“-”,我将减去后面的数字。这将保存在一个计数变量中。然后,此计数变量将存储在列表中。我将继续循环遍历文件,直到找到重复的计数值。我的想法是继续循环,直到找到重复项(因此我的 while 条件)。但是当我到达文件的末尾时,我需要重新开始!所以文件末尾的计数现在将从头开始
while 循环,然后是 for 循环
def computeProblemOnePointFive(inputFileString):
inputFile = open(inputFileString, "r")
count = 0
countsList=[]
while len(countsList) == len(set(countsList)):
for line in inputFile:
if "+" in line:
value = int(line.strip("+"))
count = count + value
countsList.append(count)
if "-" in line:
value = int(line.strip("-"))
count = count - value
countsList.append(count)
return countsList[-1]
【问题讨论】:
-
...您能否更具体地说明您的代码中究竟有什么问题?是否有特定部分不起作用?你能提供一个例子/实际的输入/输出吗?
-
代码没有停止。我添加了打印语句,然后我看到的是 for 循环遍历整个文件,然后当它到达末尾时,它会离开 for 循环但永远不会重新进入。然后它就坐在那里,因为 while 条件永远不会变为假。我知道这个问题在循环文件几次之前不会变为假
-
这不是re-read an open file的情况吗?
-
尝试将
inputFile.seek(0)放在内部for循环的结尾之后,但仍然在while循环内
标签: python loops for-loop while-loop