In Python, functions are essentially first-class citizens. They are objects in Python, just like other primitive and complex data types, and have a valuable purpose. In this course, you'll learn how to define and invoke functions in Python. First, you'll define a function using the def keyword and specify input arguments and return values from functions. You'll then work with positional arguments and keyword arguments. Next, you'll define functions with default values for arguments and a variable number of arguments. Along the way, you'll also examine how arguments can be pass-by-value or pass-by-reference. Finally, you'll explore the characteristics of Python functions that make them first-class citizens. When you're finished with this course, you'll have a solid grasp of the foundations of support for functions in Python and be able to use Python functions in your development work.