Last updated: Jun 15, 2022
Photo from Unsplash
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:
0(zero) of any numeric type
x or yreturns the value to the left if it's truthy, otherwise the value to the right is returned.
None is a falsy value, the expression
None or y is always going to
x or ywould also return
xis 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
None is much more explicit and the
if block will only run if
the variable stores a
The condition wouldn't be satisfied if the variable stores any other falsy value.
You can also use a one-liner
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
my_var = 123 my_var = 0 if my_var is None else my_var print(my_var) # 👉️ 123