Unit 5 · Lesson 2

Parameters & Return Values

Pass data in, get results out.

Use default parameter values
Return multiple values
Understand None as implicit return
Design flexible signatures

Default Parameters

Give parameters default values — callers can override or skip:

def power(base, exponent=2): return base ** exponent print(power(5)) # 25 print(power(5, 3)) # 125

Returning Multiple Values

def min_max(a, b, c): return min(a,b,c), max(a,b,c) smallest, biggest = min_max(3,1,7)
None alert: If a function has no return, it returns None. Check your returns if you get None unexpectedly!
Practice Time

Challenges

Challenge 1: Power Function

Guided

Write power() with a default exponent.

Instructions: power(base, exponent=2) returns base**exponent.
Hint: return base ** exponent

Challenge 2: Min and Max

Guided

Return both min and max of three numbers.

Instructions: min_max(a,b,c) returns (smallest, largest). Don't use built-in min/max.
Hint: Compare with if/elif, then return smallest, largest

Challenge 3: Validation Function

Solo

Write is_valid_email checking for @ and dot.

Instructions: is_valid_email(email) returns True if it contains "@", has a "." after the @, and is 5+ chars.
Hint: Check "@" in email and "." in email.split("@")[-1] and len(email) >= 5
🌐

Challenge 4: Flexible Greeting

Stretch

Multiple default parameters.

Instructions: greet(name, greeting="Hello", punctuation="!") returns f"{greeting}, {name}{punctuation}".
Hint: return f"{greeting}, {name}{punctuation}"