Let’s define a maximum function that determines and returns the largest of three values— the following code segment calls the function three times with integers, floating-point numbers and strings, respectively:
def maximum(value1, value2, value3): """Return the maximum of three values.""" max_value = value1 if value2 > max_value: max_value = value2 if value3 > max_value: max_value = value3 return max_value maximum(12, 27, 36) maximum(12.3, 45.6, 9.7) maximum('yellow', 'red', 'orange')
maximum(13.5, 'hello', 7) results in TypeError because strings and numbers cannot be compared to one another with the greater-than (>) operator.
Function maximum’s Definition
Function maximum specifies three parameters in a comma-separated list. The arguments 12, 27 and 36 are assigned to the parameters value1, value2 and value3, respectively. To determine the largest value, we process one value at a time: Initially, we assume that value1 contains the largest value, so we assign it to the local variable max_value. Of course, it’s possible that value2 or value3 contains the actual largest value, so we still must compare each of these with max_value. The first if statement then tests value2 > max_value, and if this condition is True assigns value2 to max_value. The second if statement then tests value3 > max_value, and if this condition is True assigns value3 to max_value. Now, max_value contains the largest value, so we return it. When control returns to the caller, the parameters value1, value2 and value3 and the variable max_value in the function’s block—which are all local variables—no longer exist.