Multiple Parameters

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')

The call 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.

Python’s Built-In max and min Functions

For many common tasks, the capabilities you need already exist in Python. For example, built-in max and min functions know how to determine the largest and smallest of their two or more arguments, respectively: Each of these functions also can receive an iterable argument, such as a list or a string. Using built-in functions or functions from the Python Standard Library’s modules rather than writing your own can reduce development time and increase program reliability, portability and performance. For a list of Python’s built-in functions and modules, see