with open("some_file.txt") as f: for lines in f: print(lines) exit
exit lines in your loop do nothing. Why they do nothing is a bit more complicated than the usual reason
exit would do nothing in Python, though.
exit on a line by its own wouldn't exit Python. At most, in interactive mode, it would print a message telling you how to quit Python (message implemented in
>>> exit Use exit() or Ctrl-D (i.e. EOF) to exit
IPython does something different. Among the many extra systems IPython has for interactive convenience is a system to autocall instances of a certain type,
IPython.core.autocall.IPyAutocall. (This is similar to but distinct from the
quit are set to instances of
IPython.core.autocall.ExitAutocall, a subclass of
IPyAutocall. IPython recognizes objects of this type, so when a line containing just
quit is executed, IPython actually exits.
In : exit [IPython dies here]
A Jupyter notebook's IPython kernel has
quit set to instances of the very closely related
IPython.core.autocall.ZMQExitAutocall, which has some extra functionality to support a
keep_kernel argument, but is otherwise the same.
This functionality only triggers when a line referring to the autocallable object is the entire content of the cell, though. Inside a loop, the autocall functionality doesn't trigger, so we're back to nothing happening.
In fact, even less happens than what would happen in normal interactive mode - in a normal, non-IPython interactive session, this loop would print the "Use exit()..." message on each iteration, due to differences in how IPython and the regular interactive mode handle expression auto-printing.