Bird
Raised Fist0
Pythonprogramming~5 mins

Multiple return values in Python

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
Introduction

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.

When you want a function to give back both a result and some extra details, like a calculation and its steps.
When you need to return different types of data together, like a number and a message.
When you want to split a task into parts and return all parts at once.
When you want to return coordinates like x and y from a function.
When you want to return both success status and data from a function.
Syntax
Python
def function_name():
    # do something
    return value1, value2, value3
You separate the values you want to return with commas.
Python automatically packs these values into a tuple.
Examples
This function returns two values: a name and an age.
Python
def get_name_and_age():
    return "Alice", 30
Returns both the sum and product of two numbers.
Python
def calculate():
    sum = 5 + 3
    product = 5 * 3
    return sum, product
This function returns nothing explicitly, so it returns None.
Python
def no_return():
    print("Hello")
Sample Program

This program defines a function that returns two values: the quotient and remainder of dividing two numbers. Then it prints both values.

Python
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}")
OutputSuccess
Important Notes

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.

Summary

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

(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