9. Functions 🪄
Learn how to create reusable magic spells (functions) in Python!
Level Up with Function Magic! 🪄
Hey coding champions! Remember how we used loops to repeat actions in our last adventure? Now it's time to learn something SUPER powerful - Functions! Think of functions as your very own magic spells that you can create and use whenever you want! Just like how a wizard stores their favorite spells in a spellbook, functions let you save your code magic for later! 🧙♂️
Today's Quest! 🎯
You'll learn how to:
- Create your own magic spells (functions)! 🪄
- Make spells that can receive magic ingredients (arguments)! 🧪
- Return magical results from your spells! ✨
- Organize your spellbook (code) like a master wizard! 📚
Creating Your First Spell (Function)! 🎯
Remember how we used loops to fight multiple enemies? Let's create a function for that!
def battle_cry():
print("Ready for adventure! ⚔️")
print("Enemies beware! 🛡️")
print("Victory shall be mine! 🏆")
# Use your spell (call the function)
battle_cry()
Spells with Magic Ingredients (Arguments)! 🧪
def greet_player(player_name, player_class):
print(f"Welcome, {player_name} the {player_class}! 🌟")
# Use the spell with different ingredients
greet_player("Alex", "Warrior")
greet_player("Luna", "Mage")
# Remember our healing loop? Let's make it a function!
def heal_player(current_health, potion_power):
while current_health < 100:
current_health += potion_power
print(f"Healing... Current health: {current_health} ❤️")
return current_health # Send back the new health value!
Spells that Return Magic (Return Values)! ✨
def calculate_damage(weapon_power, player_level):
total_damage = weapon_power * (1 + player_level/10)
return total_damage
# Use the spell in battle!
sword_damage = calculate_damage(25, 5)
print(f"Your attack deals {sword_damage} damage! ⚔️")
Combining Multiple Spells! 🔮
def check_inventory(items):
print("Checking inventory... 🎒")
for item in items: # Using our loop knowledge!
if item == "Magic Key": # Using our conditional knowledge!
return True
return False
def open_treasure_chest(has_key):
if has_key:
print("Opening the treasure chest... 🗝️")
print("You found magical loot! ✨")
else:
print("You need a Magic Key to open this chest! 🔒")
# Let's use both spells together!
player_inventory = ["Sword", "Shield", "Magic Key", "Potion"]
has_magic_key = check_inventory(player_inventory)
open_treasure_chest(has_magic_key)
🎮 Mini-Game: The Magical Restaurant!
Let's create a pizza-making game using functions!
def prepare_dough(pizza_size):
print(f"Preparing {pizza_size} pizza dough... 🥟")
return "Ready dough"
def add_toppings(toppings):
print("Adding magical toppings... ✨")
for topping in toppings: # Look, we're using loops!
print(f"Adding {topping} 🧪")
def bake_pizza(dough, temperature):
if temperature > 9000: # Dragon-fire temperature!
print("Baking with dragon fire! 🐲")
else:
print("Baking with regular fire! 🔥")
return "Delicious Pizza"
# Let's make a pizza!
toppings = ["Mushrooms", "Dragon Peppers", "Magic Cheese"]
dough = prepare_dough("large")
add_toppings(toppings)
final_pizza = bake_pizza(dough, 9001)
print(f"Enjoy your {final_pizza}! 🍕")
🌟 Super Challenge: Create a Battle System!
def choose_character(name, character_class):
# Your code here: Set up initial stats based on class
pass
def attack(attacker_power, defender_health):
# Your code here: Calculate damage and remaining health
pass
def use_special_ability(character_class):
# Your code here: Different special move for each class
pass
# Example battle sequence
player = choose_character("Hero", "Warrior")
enemy_health = 100
while enemy_health > 0: # Look, we're using while loops!
# Your battle code here!
pass
🎯 Debug Mission: Fix the Spell Book!
Can you spot what's wrong with these magical functions?
# Bug 1: Why doesn't this spell work?
def add_to_inventory(item)
inventory.append(item)
print(f"Added {item} to inventory!")
# Bug 2: What's wrong with this healing spell?
def heal():
health = 100
return health
player_health = 50
heal()
print(player_health) # Still 50! Why?
# Bug 3: Can you spot the scope error?
def check_mana():
mana = 100
print(mana) # Why can't we see the mana here?
Final Boss Challenge: Create a Complete Adventure Game!
def start_adventure(player_name):
"""
Create functions for:
1. Player creation
2. Battle system
3. Inventory management
4. Quest tracking
5. Level up system
Use all we've learned:
- Strings for messages
- Conditionals for decisions
- Loops for repeated actions
- Functions to organize it all!
"""
pass
# Your code here!
Practice Quest: The Function Benefits Collector!
Let's create a magical library of function benefits:
def list_benefits():
return [
"More organized spellbook",
"More readable magic",
"Easier spell reuse",
"Sharing spells with other wizards"
]
def build_sentence(benefit):
return f"{benefit} is a benefit of functions! ✨"
def share_magical_knowledge():
benefits = list_benefits()
for benefit in benefits: # Using our loop powers!
print(build_sentence(benefit))
# Let's share our knowledge!
share_magical_knowledge()
Remember:
- Functions are like spells in your spellbook
- They can take magical ingredients (arguments)
- They can return magical results
- You can use them over and over
- They make your code more organized and powerful!
Ready to create your own magical functions? Let's code! 🚀