Functions are named block of code that can be used anywhere any number of times in the program. It allow us to re-use the code instead of writing the code again and again.

To define a function, we write:

Syntax:

def function_name:
    statement_1
    statement_2

Here is an example:

def say_hello():
    print("Hello")

Now, to call this function, we can simply write:

say_hello()

Here are some examples on functions:

Example 1

Creating a simple function.

def say_hello():
    print("Hello")

say_hello()

Example 2

Passing value to function.

def square(x):
    print("Square of %d is %d" % (x, x*x))

square(5)

Example 3

Returning value from function.

def find_big(x,y):
    return x if x>y else y

big = find_big(7,5)

print("The bigger number is " , big)

Example 4

Loop inside function.

def factorial(x):
    fact = 1

    for i in range(1,x+1):
        fact *= i

    return fact

x = 5

print("Factorial of %d is %d" % (x, factorial(x)))

Example 5

Passing a function into another function call.

def square(x):
    return x*x

def find_big(x,y):
    return x if x>y else y

a,b = 7,5

print("The square of bigger number between %d and %d is %d" % (a,b,square(find_big(a,b))))

Example 6

Recursive function.

def factorial(x):
    if x>1:
        return x * factorial(x-1)
    else:
        return 1

x = 5
print("Factorial of %d is %d" % (x, factorial(x)))

Example 7

Returning multiple values from function.

def numbers():
    return (4,5)

x,y = numbers()

print("Sum of %d and %d is %d" % (x,y, x+y))