Hone

Lessons · Python · returning True/False

Returning the answer, not a description of it

A comparison already IS a True or False; return it directly instead of wrapping it in if/else.

Hone is a place to practise programming. This is one of its lessons, written out in full and free to read without an account.

What it is for

Functions that answer yes/no questions are everywhere: is_valid, is_empty, can_afford. Writing them cleanly makes the calling code read like English.

How to think about it

Is the condition already the answer? If you find yourself writing 'if condition: return True else: return False', delete everything except 'return condition'.

Worked example

def is_adult(age):
A yes/no question.
    return age >= 18
age >= 18 evaluates to True or False. That is the answer; return it.
print(is_adult(20), is_adult(12))
True False.

Your turn

Return whether a list is empty, in one line.

def is_empty(items):
    return len(items)  0

The trap

Returning the strings 'True' and 'False'. They are text, always truthy, and the caller's if will never take the else branch.

Next in Python

Every Python lesson on one page

Practise returning True/False on HoneA question on it now, a coding challenge where there is one, and it is remembered for review. Free, no email needed.