Multiple return values in Python - Mini Project: Build & Apply
Start learning this pattern below
Jump into concepts and practice - no test required
length and width and set them to 5 and 3 respectively.Think of length and width as the sides of a rectangle.
calculate_rectangle that takes two parameters: length and width. Inside the function, calculate the area as length * width and the perimeter as 2 * (length + width). Return both area and perimeter.Use the return statement to send back both values separated by a comma.
calculate_rectangle with the variables length and width. Store the returned values in two variables called area and perimeter.Use two variables on the left side to receive the two returned values.
area and perimeter using two separate print statements.Use print(area) and print(perimeter) to show the results.
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
