Bill Wang Bill Wang - 5 months ago 8
Python Question

While Loop Not Breaking In Python

I have a program like this:

def read():
while 1:
for line in temp1:
if event in line:
print temp1.next()
elif date in line:
print temp1.next()
elif ending in line:
print 'End of file'
break
event = '1'
date = '2'
ending = '3'
temp1 = open('test.txt')


And test.txt looks like this:

1
ABC
2
CAB
3


For some reason the while loop is not breaking when the program is at the end of the file

Answer

Your break statement only breaks out of the for loop (if it's hit). It doesn't, and indeed, can't break out of the while loop as well. Though I'm not sure what the while loop is there for, since the for loop should iterate over the whole file. Since you're already in a function, you can use a return statement to break out of multiple loops (though it would probably be better to just get rid of the extra loop).

Comments