Bird
Raised Fist0
Pythonprogramming~10 mins

Multiple return values in Python - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Multiple return values
Function called
Execute function body
Prepare multiple values
Return values as tuple
Caller receives tuple
Unpack or use returned values
When a function returns multiple values, it actually returns them as a tuple. The caller can then unpack or use these values separately.
Execution Sample
Python
def get_stats(numbers):
    total = sum(numbers)
    count = len(numbers)
    average = total / count
    return total, count, average

result = get_stats([10, 20, 30])
This function calculates total, count, and average of a list and returns all three values together.
Execution Table
StepActionVariablesReturned ValueNotes
1Function get_stats called with [10, 20, 30]numbers=[10,20,30]Start function execution
2Calculate total = sum(numbers)total=60Sum of list elements
3Calculate count = len(numbers)count=3Number of elements
4Calculate average = total / countaverage=20.0Average value
5Return total, count, averagetotal=60, count=3, average=20.0(60, 3, 20.0)Multiple values returned as tuple
6Assign returned tuple to resultresult=(60, 3, 20.0)Caller receives tuple
💡 Function completes after returning the tuple of three values
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4Final
numbers[10, 20, 30][10, 20, 30][10, 20, 30][10, 20, 30][10, 20, 30]
totalundefined60606060
countundefinedundefined333
averageundefinedundefinedundefined20.020.0
resultundefinedundefinedundefinedundefined(60, 3, 20.0)
Key Moments - 2 Insights
Why does the function return a single tuple instead of separate values?
The function returns multiple values separated by commas, which Python automatically packs into a tuple (see execution_table step 5). This tuple is a single object containing all values.
How can the caller use the multiple returned values?
The caller receives a tuple (execution_table step 6). They can unpack it into separate variables or use it as a tuple directly.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 5, what is the returned value?
A(60, 3, 20.0)
B60, 3, 20.0
C[60, 3, 20.0]
DNone
💡 Hint
Check the 'Returned Value' column at step 5 in execution_table
At which step is the variable 'average' first assigned a value?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the 'Variables' column in execution_table for when 'average' appears
If the function returned only 'total' instead of multiple values, how would the 'result' variable change?
Aresult would be a tuple with one element
Bresult would be a list
Cresult would be a single number, not a tuple
Dresult would be undefined
💡 Hint
Refer to how multiple values are packed into a tuple in execution_table step 5 and 6
Concept Snapshot
def func():
    return val1, val2, val3

# Returns multiple values as a tuple
# Caller can unpack: a, b, c = func()
# Or use as tuple: result = func()
Full Transcript
This example shows a Python function returning multiple values. The function get_stats calculates total, count, and average of a list. It returns these three values separated by commas. Python packs them into a tuple automatically. The caller receives this tuple and can unpack or use it. The execution table traces each step: calling the function, calculating variables, returning the tuple, and assigning it to result. Variables change as the function runs, and the final result is a tuple with three values. Beginners often wonder why multiple values are returned as one tuple and how to use them. The quiz questions help check understanding of these points.

Practice

(1/5)
1.

What does a Python function return when it has multiple values separated by commas in the return statement?

easy
A. A tuple containing all the returned values
B. A list containing all the returned values
C. Only the first value is returned
D. A dictionary with values as keys

Solution

  1. Step 1: Understand Python return behavior

    When multiple values are separated by commas in a return statement, Python groups them into a tuple automatically.
  2. Step 2: Identify the returned data type

    The returned object is a tuple containing all the values, not a list or dictionary.
  3. Final Answer:

    A tuple containing all the returned values -> Option A
  4. Quick Check:

    Multiple values returned = tuple [OK]
Hint: Multiple returns become a tuple automatically [OK]
Common Mistakes:
  • Thinking it returns a list
  • Assuming only one value is returned
  • Confusing tuple with dictionary
2.

Which of the following is the correct syntax to return multiple values a and b from a function?

easy
A. return a, b
B. return {a: b}
C. return [a, b]
D. return {a, b}

Solution

  1. Step 1: Review return syntax for multiple values

    Python allows returning multiple values separated by commas without parentheses.
  2. Step 2: Compare options

    return a, b is correct and returns a tuple. return {a: b} returns a dictionary, return [a, b] returns a list, and return {a, b} returns a set, which are not typical for multiple return values.
  3. Final Answer:

    return a, b -> Option A
  4. Quick Check:

    Comma-separated values return tuple [OK]
Hint: Use commas without brackets to return multiple values [OK]
Common Mistakes:
  • Using brackets unnecessarily
  • Returning list or set instead of tuple
  • Syntax errors with braces
3.

What will be the output of this code?

def get_values():
    return 5, 10

x, y = get_values()
print(x + y)
medium
A. 510
B. TypeError
C. 15
D. None

Solution

  1. 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.
  2. Step 2: Calculate the sum

    Adding x and y means 5 + 10 which equals 15.
  3. Final Answer:

    15 -> Option C
  4. Quick Check:

    5 + 10 = 15 [OK]
Hint: Unpack returned tuple into variables to use values [OK]
Common Mistakes:
  • Concatenating numbers as strings
  • Forgetting to unpack tuple
  • Expecting a list instead of tuple
4.

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')
medium
A. Missing return statement
B. Too many variables to unpack returned values
C. Function split_name returns a list, not tuple
D. split() method does not work on strings

Solution

  1. Step 1: Analyze returned values and unpacking

    The function returns two values: first and last name. The caller tries to unpack into three variables.
  2. 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.
  3. Final Answer:

    Too many variables to unpack returned values -> Option B
  4. Quick Check:

    Returned 2 values but unpacked into 3 variables [OK]
Hint: Match number of variables to returned values [OK]
Common Mistakes:
  • Unpacking into more variables than returned
  • Assuming split returns tuple always
  • Ignoring ValueError messages
5.

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.

hard
A. def calculate(numbers): total = sum(numbers) product = 0 for n in numbers: product += n return total, product
B. def calculate(numbers): return sum(numbers) + product(numbers)
C. def calculate(numbers): return [sum(numbers), product(numbers)]
D. def calculate(numbers): total = sum(numbers) product = 1 for n in numbers: product *= n return total, product

Solution

  1. Step 1: Calculate sum and product correctly

    Sum is calculated using built-in sum(). Product requires initializing to 1 and multiplying each number.
  2. Step 2: Return both values as multiple return values

    Return total and product separated by comma to return a tuple.
  3. Final Answer:

    def calculate(numbers): total = sum(numbers) product = 1 for n in numbers: product *= n return total, product -> Option D
  4. Quick Check:

    Return sum and product as tuple [OK]
Hint: Return sum and product separated by comma [OK]
Common Mistakes:
  • Using product = 0 and adding instead of multiplying
  • Trying to add sum and product instead of returning both
  • Returning list instead of tuple