Functions allow for code reusability and modularization. A function is defined using the def keyword followed by the function name and parameters. Functions can take in arguments as inputs and return a value. Variables declared inside a function have local scope while those outside have global scope. Default parameter values can be specified in the function definition.