Define functions, arguments, scope, recursion, and higher-order functions
Define reusable blocks of code with def, pass in parameters, return values, and start writing programs that don't repeat themselves.
Positional, keyword, default values, *args, **kwargs — the flexible function signatures behind every popular Python library.
Anonymous one-line functions. Handy with sorted(), map(), and filter() — but sometimes a regular function is just clearer.
Where Python looks for variables: local, enclosing, global, built-in (LEGB). Plus closures and the global/nonlocal keywords.
Functions that call themselves. Understand the call stack, write base cases, and build up to factorial, Fibonacci, and tree traversal.
Functional programming in Python — transform data with map(), filter it, reduce it, and compare with comprehensions.