What’s the Difference Between exit(0) and exit(1) in Python?

The function calls exit(0) and exit(1) are used to reveal the status of the termination of a Python program. The call exit(0) indicates successful execution of a program whereas exit(1) indicates some issue/error occurred while executing a program.

What is the Exit Code?

Let’s have a look at some examples to get a clear picture of the built-in exit() function in Python. For simplicity, I am using Pycharm IDE.

Quote = 'Dream without fear'
print(Quote)

let’s run this code:

Dream without fear
Process finished with exit code 0

From the code snippet, we can see the program was executed successfully since it returned the result and the process was finished with exit code 0.

Now Let’s do a mistake intentionally:

Quote = 'Dream without fear'
print(Quot)

Output:

Traceback (most recent call last):
File "G:/code_practice/exit.py", line 2, in <module>
print(Quot)
NameError: name 'Quot' is not defined
Process finished with exit code 1

If someone notices carefully, the program was unable to deliver a result due to the name error that occurred for the misspelling of the variable ‘Quote’. Hence the process was finished with exit code 1 implying that there were some issues in running the program.

💡 Remember: Therefore, a non-zero exit code is always treated as an abnormal exit. The non-zero exit code can be anything ranging from 1-255 indicating unsuccessful execution of a program. 0 is the default exit code used by python treated as the successful execution of a program. Any value outside the range of 0-255 is treated as modulo 256.

That is for example if we execute a statement exit(10003) then it will execute exit(19) as 10003%256=19. This convention is applicable in most of the platforms but the meaning of the status codes may vary from one to another.  

How to Terminate a Python Script?

When we run a program usually the interpreter exits from the program when it reaches the end of the script. There are many occasions when we need to terminate the program before the interpreter does so. In this sort of situation functions like exit(0) or exit(1) allow us to come out of the loop automatically.

Terminating a Python Script with exit(0)

Let’s have a look at a practical example:

weights = [34,23,60,95,30,45]
for weight in weights:
    if weight>80:
        print('This person is more than 80 kg.')
        exit(0)

Output:

34
23
60
This person is more than 80 kg.
Process finished with exit code 0

The code above stopped execution when it had reached the condition (weight>80) and the last 2 numbers of the list are not printed because of the exit(0) function. This exit(0) function automatically terminated the program after a certain condition (weight>80) had been met.

Terminating a Python Script with exit(1)

weights = [34,23,'thirty',60,95,45]
for weight in weights:
    if type(weight) != int :
        print('This is not an integer value.')
        exit(1)
    print(weight)

Output:

34
23
This is not an integer value.
Process finished with exit code 1

For the non-integer value inside the list, the code stopped execution before completing the whole for loop. The process finished with exit(1) as instructed in the code snippet. It makes the thing easier for the developer to choose an exit point for a program if there is any confusion of raising an error.

References