Python provides the bool type, which can have two values: True and False (capitalized)

done = False
done = True

Booleans are especially useful with conditional control structures like if statements:

done = True

if done:
    # run some code here
else:
    # run some other code

When evaluating a value for True or False, if the value is not a bool we have some rules depending on the type we’re checking:

  • numbers are always True unless for the number 0
  • strings are False only when empty
  • lists, tuples, sets, dictionaries are False only when empty

You can check if a value is a boolean in this way:

done = True
type(done) == bool #True

Or using isinstance(), passing 2 arguments: the variable, and the bool class:

done = True
isinstance(done, bool) #True

The global any() function is also very useful when working with booleans, as it returns True if any of the values of the iterable (list, for example) passed as argument are True:

book_1_read = True
book_2_read = False

read_any_book = any([book_1_read, book_2_read])

The global all() function is same, but returns True if all of the values passed to it are True:

ingredients_purchased = True
meal_cooked = False

ready_to_serve = all([ingredients_purchased, meal_cooked])

More python tutorials: