8-2. The Syntax of Function Definition

In Python, the syntax for defining a function follows a specific format. Here are the key elements:

  • Header Line: The function definition begins with the def keyword, followed by the function name, a list of parameters in parentheses, and a colon (:).
  • Function Body: This part includes a valid block of code that performs the function's tasks. The body can contain multiple statements and should be indented.
  • Pass Statement: If you don't want the function to do anything, you can use the pass statement. This makes it a valid block of code that does no work.

Syntax of Function Definition

Python functions are defined using the following syntax.

def function_name():
    statement
    statement

 

Function Naming Rules

Here are the naming rules for Python functions, which are similar to those for variables:

  • Start with a letter or underscore (_), followed by letters, digits, or underscores.
  • Avoid using spaces and reserved words.
  • Use descriptive, lowercase names with underscores to enhance readability.
  • Indicate private functions with a leading underscore (_).
  • Avoid confusing or ambiguous names and opt for verb-noun pairs to clearly indicate functionality.

Example of a Function

Here’s a simple example of a function in Python:

def add_numbers(a, b):
    return a + b

 

This function, add_numbers(), takes two inputs, a and b, and returns their sum. Instead of writing the addition logic repeatedly, you can just call this function:

result = add_numbers(5, 3)
    print(result) # Output: 8

 

Using Functions with New Data

In programming, functions allow us to perform the same task with different data without having to rewrite the code. Here's an example to illustrate this concept:

def fun_function(age, alias_list):
    """print age and aliases for the user"""
    print("You're ", age, " years old. Try not to think about it")
    print("Should I call you ")
    for name in alias_list:
        print(name, " or ...")
    print()
def main():

    # Set initial data values
    monty_age = 37
    alias_list = ["Rico Suave", "Super Monty", "Lamer"]

    # Call the fun_function
    fun_function(monty_age, alias_list)

# Call the main function
main()

 

In this example, we have a function fun_function that takes two parameters: age and alias_list. The function prints the age and a list of aliases.

We then set some initial data:

  • monty_age = 37
  • monty_aliases = ["Rico Suave", "Super Monty", "Lamer"]

When we call the function with these values:

fun_function(monty_age, monty_aliases)

Output will be:

You're 37 years old. Try not to think about it
Should I call you
Rico Suave or ...
Super Monty or ...
Lamer or ...

 

Explanation:

  • Function Definition: The function fun_function is defined with two parameters, age and alias_list. This allows the function to work with any age and any list of aliases provided when it is called.
  • Setting Data: We set specific values for monty_age and monty_aliases.
  • Calling the Function: The function is called with monty_age and monty_aliases as arguments. This is the call statement where the actual parameter values are passed to the function. The call statement is:

fun_function(monty_age, monty_aliases)

  • Reusability: The function can be reused with different data without changing the function itself. For example:

fun_function(45, ["The Rock", "Super Hero", "Cool Dude"])

This call would produce different output, working with the new age and aliases provided.