Using the def statement is the most common way to define a function in python. This statement is a so called single clause compound statement with the following syntax:

def function_name(parameters):
    statement(s)

*function_name* is known as the identifier of the function. Since a function definition is an executable statement its execution binds the function name to the function object which can be called later on using the identifier.

*parameters* is an optional list of identifiers that get bound to the values supplied as arguments when the function is called. A function may have an arbitrary number of arguments which are separated by commas.

*statement(s)* – also known as the function body – are a nonempty sequence of statements executed each time the function is called. This means a function body cannot be empty, just like any indented block.

Here’s an example of a simple function definition which purpose is to print Hello each time it’s called:

def greet():
    print("Hello")

Now let’s call the defined greet() function:

greet()
# Out: Hello

That’s an other example of a function definition which takes one single argument and displays the passed in value each time the function is called:

def greet_two(greeting):
    print(greeting)

After that the greet_two() function must be called with an argument:

greet_two("Howdy")
# Out: Howdy

Also you can give a default value to that function argument:

def greet_two(greeting="Howdy"):
    print(greeting)

Now you can call the function without giving a value:

greet_two()
# Out: Howdy

You’ll notice that unlike many other languages, you do not need to explicitly declare a return type of the function. Python functions can return values of any type via the return keyword. One function can return any number of different types!

def many_types(x):
    if x < 0:
        return "Hello!"
    else:
        return 0

print(many_types(1))
print(many_types(-1))

# Output:
0
Hello!

As long as this is handled correctly by the caller, this is perfectly valid Python code.