For the "q" (quit) option in my program menu, I have the following code:
elif choice == "q": print()
That worked all right until I put it in an infinite loop, which kept printing blank lines. Is there a method that can quit the program? Else, can you think of another solution?
One way is to do:
You will have to
import sys of course.
Another way is to
break out of your infinite loop. For example, you could do this:
while True: choice = get_input() if choice == "a": # do something elif choice == "q": break
Yet another way is to put your main loop in a function, and use
def run(): while True: choice = get_input() if choice == "a": # do something elif choice == "q": return if __name__ == "__main__": run()
The only reason you need the
run() function when using
return is that (unlike some other languages) you can't directly
return from the main part of your Python code (the part that's not inside a function).
The actual way to end a program, is to call
sys.exit does, anyway.
SystemExit, or with
None as a single argument, sets the process' exit code to zero. Any non-integer exception value (
raise SystemExit("some message")) prints the exception value to
sys.stderr and sets the exit code to 1. An integer value sets the process' exit code to the value:
$ python -c "raise SystemExit(4)"; echo $? 4