top of page
Writer's pictureHui Wang

92. Machine learning: Python Functions (Part 1/2)

In Python, a function is a block of code that can be reused multiple times throughout a program. Functions allow you to organize your code and make it more readable and maintainable. They can take input parameters (also called arguments) and return an output.


1. Creating a function


Creating a function in Python is a straightforward process. Here are the steps to create a function in Python:


Use the "def" keyword to start the function definition, followed by the function name and a set of parentheses. The parentheses may contain parameters that the function takes as input.

def function_name(param1, param2):

Indent the code block that makes up the function. This code block should contain the instructions that the function will execute when called.

def function_name(param1, param2):
    # function code here

Use the "return" statement to specify the output of the function, if any. The return statement ends the function execution and sends a value back to the point where the function was called.

def function_name(param1, param2):
    # function code here
    return  result

Call the function by using its name followed by parentheses and passing in any required arguments.

result = function_name(arg1, arg2)

Here's an example of a simple function that takes two input arguments, multiplies them and returns the product:

def multiply(x, y):
    return x * y

result = multiply(2, 3)
print(result) # Output: 6

You can call the function multiple times with different arguments, and it will execute the same logic every time with new inputs.

It is a best practice to use meaningful names for functions, parameters, and variables. And also to document your functions with comments or docstrings to make it easier for others to understand your code.



2. Calling a Function


You can call a function by using its name followed by parentheses and passing in any required arguments. The syntax for calling a function is:

function_name(argument1, argument2, ...)

Where function_name is the name of the function you want to call and argument1, argument2, ... are the values you want to pass to the function's parameters.


Here's an example of a simple function that takes two input arguments, multiplies them and returns the product:

def multiply(x, y):
    return x * y

To call this function and get the result of 2*3 you would use:

result = multiply(2, 3)
print(result) # Output: 6

You can also call a function and directly use the returned value in an expression.

result = print(multiply(2, 3) + 2) # Output: 8

It's worth noting that you can still call it without assigning the returned value to any variable if the function doesn't return any value.

def print_hello():
    print("Hello")

print_hello() # Output: Hello

You can also call a function with keyword arguments, by specifying the parameter name and its value.

def print_hello(name: str):
    print(f"Hello {name}")

print_hello(name="John") # Output: Hello John

Overall, calling a function in Python is very simple and straightforward, and it is a crucial part of using functions to organize and reuse code.



3. Arguments


Functions can take input parameters (also called arguments) that are used to perform operations or calculations within the function. Arguments can be passed to a function when it is called, and the function can then use these arguments to perform its operations.


There are two types of arguments in Python:


Positional arguments: These are the arguments that are passed to a function in the order they are defined. The function uses the position of the argument to determine which parameter it corresponds to.

def add(x, y):
    return x + y

result = add(1, 2)  # 1 is assigned to x, 2 is assigned to y
print(result)  # Output: 3

Keyword arguments: These are the arguments that are passed to a function by specifying the parameter name and its value. This allows you to specify the arguments in any order.

def greet(name, age):
    return f"Hello {name}, you are {age} years old"

result = greet(age=25, name='John')
print(result)  # Output: Hello John, you are 25 years old

You can also define default values for function parameters, which will be used if a value is not provided when the function is called.

def greet(name, age=18):
    return f"Hello {name}, you are {age} years old"

result = greet('John')
print(result)  # Output: Hello John, you are 18 years old

Python also allows to define a function that takes an arbitrary number of arguments with *args and **kwargs

*args is used to pass a variable number of positional arguments to a function

def print_args(*args):
    for arg in args:
        print(arg)

print_args(1, 2, 3)
# Output: 
# 1
# 2
# 3

**kwargs is used to pass a variable number of keyword arguments to a function

def print_kwargs(**kwargs):
    for key, value in kwargs.items():
        print(f"{key} : {value}")

print_kwargs(name='John', age=25)
# Output:
# name : John
# age : 25

In summary, arguments are a crucial part of functions in Python, as they allow you to pass input to the function and perform operations or calculations based on that input. The use of positional, keyword, default and variable arguments allows for a great flexibility in the way functions are defined and called.



4. Return statement


A function can return a value to the point where it was called by using the return statement. The return statement ends the function execution and sends a value back to the point where the function was called. The value that is returned can be used in further calculations or stored in a variable for later use.


Here's an example of a simple function that takes two input arguments, multiplies them and returns the product:

def multiply(x, y):
    return x * y

result = multiply(2, 3)
print(result) # Output: 6

In this example, the function multiply takes two input arguments x and y, multiplies them and returns the product using the return statement. The returned value is then assigned to the variable result and printed.


A function can return multiple values by using the return statement followed by a comma-separated list of values. These values will be returned as a tuple.

def divide_and_floor(numerator, denominator):
    return numerator / denominator, numerator // denominator

result = divide_and_floor(10,3)
print(result) # Output: (3.3333333333333335, 3)

In this example, the function divide_and_floor takes two input arguments numerator and denominator, divides them and returns the division result and the floor division result as a tuple. The returned values are then assigned to the variable result and printed.


If a function does not contain a return statement or if the return statement is not executed, then the function returns the special value None by default.

def no_return_function():
    print("I don't return anything")

result = no_return_function()
print(result) # Output: None

In summary, the return statement is used to return a value from a function in Python, ending its execution and sending a value back to the point where the function was called. This allows for the reuse of code and the organization of a program into smaller, more manageable chunks. It is also a great way to separate the logic of a program from the main execution flow.



5. Types of Functions


Functions can be categorized based on the presence or absence of parameters and return values. Here are four types of functions in Python:


Functions with no parameters and no return value: These are functions that do not take any input and do not return any output. They are used to perform some action or print some output.

def print_hello():
    print("Hello")

print_hello() # Output: Hello

Functions with parameters and no return value: These functions take input parameters but do not return any output. They are used to perform some action or print some output based on the input parameters.

def print_hello_to(name):
    print(f"Hello {name}")

print_hello_to("John") # Output: Hello John

Functions with no parameters but return value: These functions do not take any input but return some output. They are used to perform some calculations or return some data.

import random

def generate_random_number():
    return random.randint(1, 10)

result = generate_random_number()
print(result) # Output: 8

Functions with parameters and return value: These functions take input parameters and return some output. They are used to perform some calculations or processing based on the input parameters and return the result.

def add(x, y):
    return x + y

result = add(2, 3)
print(result) # Output: 5

 

Follow me on:

Recent Posts

See All

Comments


bottom of page