Learn Without Walls
← Back to Module 9

Quick Reference: Functions

Module 9 Cheat Sheet

Basic Function Syntax

def function_name(parameters): """Docstring describing the function.""" # function body return value
PartDescription
defKeyword that starts a function definition
function_nameName in snake_case, should start with a verb
(parameters)Input variables the function accepts
:Colon ends the function header
DocstringTriple-quoted string documenting the function
returnSends a value back to the caller

Parameters and Arguments

TypeSyntaxExample
Positional parameterdef f(a, b):f(1, 2)
Default parameterdef f(a, b=10):f(1) or f(1, 20)
Keyword argument(at call site)f(a=1, b=2)
*argsdef f(*args):Collects extra positional args into tuple
**kwargsdef f(**kwargs):Collects extra keyword args into dict

Order: positional → defaults → *args → **kwargs

Return Values

PatternCode
Return single valuereturn result
Return multiple valuesreturn a, b (returns a tuple)
No return statementFunction returns None
Early returnif error: return None
Unpack return valuesx, y = func()

Scope Rules (LEGB)

ScopeWhereAccessible
LocalInside the current functionOnly inside that function
EnclosingInside an outer (enclosing) functionInner functions can read it
GlobalModule (file) levelEverywhere (read); use global to write
Built-inPython's built-in namesAlways available

Common Patterns

PatternCode
Function with docstringdef f(): """Does X."""
Guard clauseif bad: return None
Accumulatortotal = 0; for x in items: total += x; return total
Boolean functiondef is_valid(x): return x > 0
Flexible argsdef f(required, opt="default", *args, **kwargs):

Best Practices

Back to Module 9