Section 8.10 Boolean Functions
We have already seen that boolean values result from the evaluation of boolean expressions. Since the result of any expression evaluation can be returned by a function (using the
return
statement), functions can return boolean values. This turns out to be a very convenient way to hide the details of complicated tests. For example:
The name of this function is
isDivisible
. It is common to give
boolean functions names that sound like yes/no questions.
isDivisible
returns either
True
or
False
to indicate whether the
x
is or is not divisible by
y
.
We can make the function more concise by taking advantage of the fact that the condition of the
if
statement is itself a boolean expression. We can return it directly, avoiding the
if
statement altogether:
def isDivisible(x, y):
return x % y == 0
Boolean functions are often used in conditional statements:
if isDivisible(x, y):
...
else:
...
It might be tempting to write something like
if isDivisible(x, y) == True:
but the extra comparison is redundant. You only need an
==
expression if you are comparing some other type than boolean. (
isDivisible(x, y) == False
can also be made more concise as
not isDivisible(x, y)
). The following example shows the
isDivisible
function at work. Notice how descriptive the code is when we move the testing details into a boolean function. Try it with a few other actual parameters to see what is printed.
Here is the same program in codelens. When we evaluate the
if
statement in the main part of the program, the evaluation of the boolean expression causes a call to the
isDivisible
function. This is very easy to see in codelens.
Checkpoint 8.10.1.
What is a Boolean function?
A function that returns True or False
- A Boolean function is just like any other function, but it always returns True or False.
A function that takes True or False as an argument
- A Boolean function may take any number of arguments (including 0, though that is rare), of any type.
The same as a Boolean expression
- A Boolean expression is a statement that evaluates to True or False, e.g. 5+3==8. A function is a series of expressions grouped together with a name that are only executed when you call the function.
Checkpoint 8.10.2.
Subsection 8.10.1 More Unit Testing
When we write unit tests, we should also consider
output equivalence classes that result in significantly different results.
The
isDivisible
function can return either
True
or
False
. These two different outputs give us two equivalence classes. We then choose inputs that should give each of the different results.
It is important to have at least one test for each output equivalence class.
This workspace is provided for your convenience. You can use this activecode window to try out anything you like.
You have attempted
1 of
8 activities on this page.