Data Type for ``True``/``False`` ================================ In order for us to build code that can make decisions, we need to understand how programming languages represent *true* and *false*. .. admonition:: Example Run the following code and examine the output: .. raw:: html In the code above, we make four *comparisons* and then print the results to the console. Python evaluates each comparison as being either ``True`` or ``False``. #. In line 1, the *equality operator* ``==`` compares the strings ``'dog'`` and ``'cat'``. Since these are NOT the same, the comparison returns the value ``False``. #. In line 2, the operator ``<`` compares the values of 3 and 4. Since 3 is indeed less than 4, comparison returns the result ``True``. #. The comparison in line 3 returns ``False``, since 3 is NOT larger than 10. #. In line 4, the ``!=`` operator stands for "not equal", so ``'dog' != 'cat'`` returns ``True``, while something like ``3 != 3`` would return ``False``. Identify ``True`` and ``False`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Recall that the ``type()`` function tells us the data type of what's inside the ``()``. Run the code below to identify the data type for ``True`` and ``False``. .. raw:: html Hmm! In the previous chapter, we learned about three data types---``int``, ``float``, and ``string``. The first two deal with numbers, while ``string`` deals with collections of characters. .. index:: ! boolean, ! bool, data type To this, we will add the data type ``bool``, which stands for **boolean value**. Boolean Values -------------- .. index:: ! True, ! False There are only two boolean values---``True`` and ``False``. .. admonition:: Note Capitalization matters! Since Python is case-sensitive, ``true`` and ``false`` are NOT valid boolean values. The values ``True`` and ``False`` are NOT strings. We can see this by printing another set of ``type()`` results: .. admonition:: Example .. sourcecode:: Python :linenos: print(type(True)) print(type("True")) print(True == "True") **Console Output** :: False Putting quotes around boolean values (``"True"`` and ``"False"``) makes them strings, just like ``"1234"`` is a string rather than an ``int`` data type. Line 3 shows that even though they look similar, ``True`` and ``"True"`` are NOT the same! ``str`` and ``bool`` are different data types. Data Type Review ---------------- #. The string (``str``) data type represents a collection of characters. #. The integer (``int``) data type represents a whole number. #. The float (``float``) data type represents a decimal value. #. The boolean (``bool``) data type represents ``True`` or ``False``.