Sometimes a function needs to give back more than one piece of information. Multiple return values let a function send back several results at once.
Multiple return values in Python
Start learning this pattern below
Jump into concepts and practice - no test required
def function_name(): # do something return value1, value2, value3
def get_name_and_age(): return "Alice", 30
def calculate(): sum = 5 + 3 product = 5 * 3 return sum, product
def no_return(): print("Hello")
This program defines a function that returns two values: the quotient and remainder of dividing two numbers. Then it prints both values.
def divide_and_remainder(a, b): quotient = a // b remainder = a % b return quotient, remainder q, r = divide_and_remainder(17, 5) print(f"Quotient: {q}") print(f"Remainder: {r}")
You can assign the returned values to separate variables like in the example.
If you only want some of the returned values, you can use an underscore (_) to ignore others.
Multiple return values are actually returned as a tuple behind the scenes.
Functions can return many values separated by commas.
Returned values are grouped as a tuple automatically.
You can easily capture these values into separate variables.
Practice
What does a Python function return when it has multiple values separated by commas in the return statement?
Solution
Step 1: Understand Python return behavior
When multiple values are separated by commas in a return statement, Python groups them into a tuple automatically.Step 2: Identify the returned data type
The returned object is a tuple containing all the values, not a list or dictionary.Final Answer:
A tuple containing all the returned values -> Option AQuick Check:
Multiple values returned = tuple [OK]
- Thinking it returns a list
- Assuming only one value is returned
- Confusing tuple with dictionary
Which of the following is the correct syntax to return multiple values a and b from a function?
Solution
Step 1: Review return syntax for multiple values
Python allows returning multiple values separated by commas without parentheses.Step 2: Compare options
return a, bis correct and returns a tuple.return {a: b}returns a dictionary,return [a, b]returns a list, andreturn {a, b}returns a set, which are not typical for multiple return values.Final Answer:
return a, b -> Option AQuick Check:
Comma-separated values return tuple [OK]
- Using brackets unnecessarily
- Returning list or set instead of tuple
- Syntax errors with braces
What will be the output of this code?
def get_values():
return 5, 10
x, y = get_values()
print(x + y)Solution
Step 1: Understand function return and unpacking
The function returns two values 5 and 10 as a tuple. Variables x and y capture these values separately.Step 2: Calculate the sum
Adding x and y means 5 + 10 which equals 15.Final Answer:
15 -> Option CQuick Check:
5 + 10 = 15 [OK]
- Concatenating numbers as strings
- Forgetting to unpack tuple
- Expecting a list instead of tuple
Find the error in this code snippet:
def split_name(full_name):
first, last = full_name.split()
return first, last
f, l, m = split_name('John Doe')Solution
Step 1: Analyze returned values and unpacking
The function returns two values: first and last name. The caller tries to unpack into three variables.Step 2: Identify mismatch in unpacking
Trying to assign two returned values to three variables causes a ValueError due to too many variables to unpack.Final Answer:
Too many variables to unpack returned values -> Option BQuick Check:
Returned 2 values but unpacked into 3 variables [OK]
- Unpacking into more variables than returned
- Assuming split returns tuple always
- Ignoring ValueError messages
Given this function that returns multiple values, how can you modify it to return the sum and product of a list of numbers?
def calculate(numbers):
# Your code here
result = calculate([1, 2, 3, 4])
print(result)Choose the correct implementation to return both sum and product.
Solution
Step 1: Calculate sum and product correctly
Sum is calculated using built-in sum(). Product requires initializing to 1 and multiplying each number.Step 2: Return both values as multiple return values
Return total and product separated by comma to return a tuple.Final Answer:
def calculate(numbers): total = sum(numbers) product = 1 for n in numbers: product *= n return total, product -> Option DQuick Check:
Return sum and product as tuple [OK]
- Using product = 0 and adding instead of multiplying
- Trying to add sum and product instead of returning both
- Returning list instead of tuple
