Search code examples
pythonboolean-expression

What is Truthy and Falsy? How is it different from True and False?


I just learned there are truthy and falsy values in python which are different from the normal True and False.

Can someone please explain in depth what truthy and falsy values are? Where should I use them? What is the difference between truthy and True values and falsy and False values?


See also:

* How do "and" and "or" act with non-boolean values?
* Boolean identity == True vs is True
* Boolean value of objects in Python


Solution

  • As the comments described, it just refers to values which are evaluated to True or False.

    For instance, to see if a list is not empty, instead of checking like this:

    if len(my_list) != 0:
       print("Not empty!")
    

    You can simply do this:

    if my_list:
       print("Not empty!")
    

    This is because some values, such as empty lists, are considered False when evaluated for a boolean value. Non-empty lists are True.

    Similarly for the integer 0, the empty string "", and so on, for False, and non-zero integers, non-empty strings, and so on, for True.

    The idea of terms like "truthy" and "falsy" simply refer to those values which are considered True in cases like those described above, and those which are considered False.

    For example, an empty list ([]) is considered "falsy", and a non-empty list (for example, [1]) is considered "truthy".

    See also this section of the documentation.