Note that a boolean value is either True or False in Python and you might sometimes find a need to convert a string to a boolean. For instance consider the following program:
In this program we are obtaining input from the user to the question “Are you feeling sick?”. This input is stored in variable “sickly”. Then we are checking for the value of sickly and recommending a course of action, either stay home/go see the doctor vs going out and playing. Here is what the program does for different inputs:
The first question-answer interaction makes it look like the program is working as intended until we realize that it gives the same response for “No” as it gives for “Yes”. The reason is because any non-empty input evaluates to True so the if clause evaluates to True. On the other hand, in the third interaction, we press Enter without any input and thus the input is empty which evaluates to False.
Obviously the program needs to be modified. In particular, we need a way to convert the Python string to a true boolean. Here is how that can work:
As you can see above, we create a function called “string_to_bool” that takes a string as input (s) and returns a boolean. First we check if the string is part of a “whitelist” of values that we consider to evaluate to True. If so we return True (note that this is True, the boolean, not “True” which is a string). Alternatively, we return False.
In the main part of the program, after we receive user input we convert it to a boolean before deciding on the message to print. Here are some sample interactions:
Everything works as intended. Note that in the last (fourth) interaction above, “Yes!” (with an exclamation) is not part of the white list and thus the program evaluates it to False. If you wish such variations to be included, you must either expand the whitelist or can see if one of the whitelist words is part of the input. We leave this as an exercise.
In summary, there are many situations like the above where you will need to convert a string to a boolean in Python. The best solution is to create a custom function like we have done here.
Kodeclik is an online coding academy for kids and teens to learn real world programming. Kids are introduced to coding in a fun and exciting way and are challeged to higher levels with engaging, high quality content.