Functions allow storing and reusing code. There are built-in functions and user-defined functions. Functions take arguments as input, can perform operations, and return outputs. Arguments are passed into functions during a call, while parameters receive the arguments inside the function definition. Functions help organize code and avoid repetition.