We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

Multiple Return Values

A function can return more than one value by separating them with commas.

def cast_iceblast(wizard_level, start_mana):
    damage = wizard_level * 2
    new_mana = start_mana - 10
    return damage, new_mana # return two values

Receiving Multiple Values

When calling a function that returns multiple values, you can assign them to multiple variables.

damage, mana = cast_iceblast(5, 100)
print(f"Damage: {damage}, Remaining Mana: {mana}")
# Damage: 10, Remaining Mana: 90

When cast_iceblast is called, it returns two values. The first value is assigned to damage, and the second value is assigned to mana. Just like function inputs, it's the order of the values that matters, not the variable names. We could just as easily have named the variables one and two:

one, two = cast_iceblast(5, 100)
print(f"Damage: {one}, Remaining Mana: {two}")
# Damage: 10, Remaining Mana: 90

Descriptive variable names make your code easier to understand, so name them well!

What Happened to the Variables?

The damage and new_mana variables from cast_iceblast's function body only exist inside of the function. They can't be used outside of the function. More on that later when we talk about scope.

Assignment

Complete the become_warrior function. It accepts 2 inputs:

  • The full_name string
  • The power integer

It should return 2 values:

  • A title string
  • A new_power integer.
  1. full_name the warrior
    

    Be very careful with the output of your program. The text will need to match the expected results exactly. Double-check your spacing and spelling!

Here's an example of how the function is intended to work:

title, power = become_warrior("Aang Airbender", 100)
print(title)
# "Aang Airbender the warrior"
print(power)
# 101