Python Functions with Examples

Learn the ins and outs of Python functions with our comprehensive guide. Explore Python function syntax, parameters, return values, and practical examples to level up your Python programming skills.
E
Edtoks5:05 min read

Functions are a fundamental concept in Python and many other programming languages. They allow you to encapsulate a block of code into a reusable, named entity. Functions make your code more modular, readable, and maintainable. Here, we'll discuss functions in Python with detailed explanations and examples.

Defining a Function

In Python, you define a function using the def keyword followed by the function name, parentheses (), and a colon :. The function body is indented and contains the code to be executed when the function is called.

def function_name(parameters):
    # Function body
    # Code to be executed

Example 1: A Simple Function

Let's create a simple function that greets a person by their name:

def greet(name):
    return f"Hello, {name}!"

# Calling the function
message = greet("Alice")
print(message)  # Output: Hello, Alice!

In this example, we defined a function called greet that takes one parameter name. When the function is called with an argument (e.g., "Alice"), it returns a greeting message.

Function Parameters

Functions can accept zero or more parameters (also called arguments). Parameters are placeholders for values that you provide when calling the function. You can specify default values for parameters, making them optional.

Example 2: Function with Default Parameter

def greet(name, greeting="Hello"):
    return f"{greeting}, {name}!"

message = greet("Alice")
print(message)  # Output: Hello, Alice!

message = greet("Bob", "Hi")
print(message)  # Output: Hi, Bob!

In this example, the greet function accepts two parameters, name and greeting, with a default value of "Hello" for the greeting parameter.

Return Statement

Functions can return values using the return statement. You can return one or more values from a function.

Example 3: Function with Multiple Return Values

def add_and_multiply(a, b):
    sum_result = a + b
    product_result = a * b
    return sum_result, product_result

result = add_and_multiply(3, 4)
print(result)  # Output: (7, 12)

In this example, the add_and_multiply function returns two values using a tuple.

Scope

Variables defined within a function are called local variables and have a limited scope, which means they are only accessible within that function.

Example 4: Function Scope

def my_function():
    x = 10  # Local variable
    print(x)

my_function()
# Accessing x outside the function will result in an error
print(x)  # NameError: name 'x' is not defined

Global Variables

Variables defined outside of any function are called global variables and can be accessed from any part of the code, including functions.

Example 5: Global Variables

global_var = 42  # Global variable

def print_global_var():
    print(global_var)

print_global_var()  # Output: 42

Documentation (Docstring)

You can add documentation to your functions using docstrings. A docstring is a string literal that appears as the first statement in a function, and it provides information about the function's purpose and usage.

Example 6: Function with Docstring

def square(x):
    """
    Calculate the square of a number.

    Parameters:
    x (int or float): The number to be squared.

    Returns:
    int or float: The square of the input number.
    """
    return x ** 2

# Accessing the docstring
print(square.__doc__)

Function Arguments

Python supports various types of function arguments, including positional arguments, keyword arguments, default arguments, and variable-length arguments.

Example 7: Function Arguments

def example_function(a, b, *args, x=0, y=0, **kwargs):
    """
    Example function with various types of arguments.

    Parameters:
    a (int): First positional argument.
    b (int): Second positional argument.
    x (int, optional): Default argument.
    y (int, optional): Default argument.
    args (tuple): Variable-length positional arguments.
    kwargs (dict): Variable-length keyword arguments.
    """
    print(f"a: {a}, b: {b}, x: {x}, y: {y}")
    print("Variable-length positional arguments:", args)
    print("Variable-length keyword arguments:", kwargs)

example_function(1, 2)  # Output: a: 1, b: 2, x: 0, y: 0

example_function(1, 2, 3, 4, x=5, y=6, name="Alice", age=30)
# Output:
# a: 1, b: 2, x: 5, y: 6
# Variable-length positional arguments: (3, 4)
# Variable-length keyword arguments: {'name': 'Alice', 'age': 30}

In this example, we define a function with various types of arguments, including positional, default, variable-length positional, and variable-length keyword arguments.

Lambda Functions

Lambda functions, also known as anonymous functions, are small, inline functions defined using the lambda keyword. They are often used for short, simple operations.

Example 8: Lambda Function

add = lambda x, y: x + y
result = add(2, 3)
print(result)  # Output: 5

Lambda functions are particularly useful when you need a small function for a short period.

Recursion

A function can call itself, which is known as recursion. Recursion is a powerful technique used for solving problems that can be broken down into smaller, similar subproblems.

Example 9: Recursive Function (Factorial)

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

result = factorial(5)
print(result)  # Output: 120

In this example, the factorial function calculates the factorial of a number using recursion.

Conclusion:

Functions are a fundamental building block of Python programming. They help you organize your code, make it more readable, and enable code reuse. Understanding how to define functions, work with arguments, handle scope, and use advanced features like docstrings and lambda functions is essential for effective Python programming.

Let's keep in touch!

Subscribe to keep up with latest updates. We promise not to spam you.