Convert NoneType to an Integer in Python


Borislav Hadzhiev

Last updated: Jun 15, 2022


Photo from Unsplash

Convert NoneType to an Integer in Python #

Use the boolean OR operator to convert NoneType to an integer in Python, e.g. result = None or 0. The boolean OR operator will return the value to the right-hand side because the value to the left (None) is falsy.
my_var = None result_1 = my_var or 0 print(result_1) # 👉️ 0 result_2 = my_var or 100 print(result_2) # 👉️ 100

We used the boolean or operator to return an integer if the value to the left is falsy.

All values that are not truthy are considered falsy. The falsy values in Python are:

  • constants defined to be falsy: None and False.
  • 0 (zero) of any numeric type
  • empty sequences and collections: "" (empty string), () (empty tuple), [] (empty list), {} (empty dictionary), set() (empty set), range(0) (empty range).
The expression x or y returns the value to the left if it's truthy, otherwise the value to the right is returned.

Since None is a falsy value, the expression None or y is always going to return y.

Note that the expression x or y would also return y if x is any of the other falsy values, e.g. an empty string, False, or an empty list, dict or tuple.

Alternatively, you can use an if statement to check if the variable stores None and reassign it to an integer.
my_var = None if my_var is None: my_var = 0 print(my_var) # 👉️ 0

Checking for None is much more explicit and the if block will only run if the variable stores a None value.

The condition wouldn't be satisfied if the variable stores any other falsy value.

You can also use a one-liner if/else statement.
my_var = None my_var = 0 if my_var is None else my_var print(my_var) # 👉️ 0

If the variable stores None, it gets set to 0, otherwise it gets set to its current value.
my_var = 123 my_var = 0 if my_var is None else my_var print(my_var) # 👉️ 123
I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.