- Python Functions
- Creating a Function
- Example
- Calling a Function
- Example
- Arguments
- Example
- Parameters or Arguments?
- Number of Arguments
- Example
- Example
- Arbitrary Arguments, *args
- Example
- Keyword Arguments
- Example
- Arbitrary Keyword Arguments, **kwargs
- Example
- Default Parameter Value
- Example
- Passing a List as an Argument
- Example
- Return Values
- Example
- The pass Statement
- Example
- Recursion
- Example
- How to Define And Call Functions in Python
- How to Define a Function
- How to Call a Function
- Python Function Code Examples
- Conclusion
Python Functions
A function is a block of code which only runs when it is called.
You can pass data, known as parameters, into a function.
A function can return data as a result.
Creating a Function
In Python a function is defined using the def keyword:
Example
Calling a Function
To call a function, use the function name followed by parenthesis:
Example
def my_function():
print(«Hello from a function»)
my_function()
Arguments
Information can be passed into functions as arguments.
Arguments are specified after the function name, inside the parentheses. You can add as many arguments as you want, just separate them with a comma.
The following example has a function with one argument (fname). When the function is called, we pass along a first name, which is used inside the function to print the full name:
Example
def my_function(fname):
print(fname + » Refsnes»)
my_function(«Emil»)
my_function(«Tobias»)
my_function(«Linus»)
Arguments are often shortened to args in Python documentations.
Parameters or Arguments?
The terms parameter and argument can be used for the same thing: information that are passed into a function.
From a function’s perspective:
A parameter is the variable listed inside the parentheses in the function definition.
An argument is the value that is sent to the function when it is called.
Number of Arguments
By default, a function must be called with the correct number of arguments. Meaning that if your function expects 2 arguments, you have to call the function with 2 arguments, not more, and not less.
Example
This function expects 2 arguments, and gets 2 arguments:
def my_function(fname, lname):
print(fname + » » + lname)
Example
This function expects 2 arguments, but gets only 1:
def my_function(fname, lname):
print(fname + » » + lname)
Arbitrary Arguments, *args
If you do not know how many arguments that will be passed into your function, add a * before the parameter name in the function definition.
This way the function will receive a tuple of arguments, and can access the items accordingly:
Example
If the number of arguments is unknown, add a * before the parameter name:
def my_function(*kids):
print(«The youngest child is » + kids[2])
my_function(«Emil», «Tobias», «Linus»)
Arbitrary Arguments are often shortened to *args in Python documentations.
Keyword Arguments
You can also send arguments with the key = value syntax.
This way the order of the arguments does not matter.
Example
def my_function(child3, child2, child1):
print(«The youngest child is » + child3)
my_function(child1 = «Emil», child2 = «Tobias», child3 = «Linus»)
The phrase Keyword Arguments are often shortened to kwargs in Python documentations.
Arbitrary Keyword Arguments, **kwargs
If you do not know how many keyword arguments that will be passed into your function, add two asterisk: ** before the parameter name in the function definition.
This way the function will receive a dictionary of arguments, and can access the items accordingly:
Example
If the number of keyword arguments is unknown, add a double ** before the parameter name:
def my_function(**kid):
print(«His last name is » + kid[«lname»])
my_function(fname = «Tobias», lname = «Refsnes»)
Arbitrary Kword Arguments are often shortened to **kwargs in Python documentations.
Default Parameter Value
The following example shows how to use a default parameter value.
If we call the function without argument, it uses the default value:
Example
def my_function(country = «Norway»):
print(«I am from » + country)
Passing a List as an Argument
You can send any data types of argument to a function (string, number, list, dictionary etc.), and it will be treated as the same data type inside the function.
E.g. if you send a List as an argument, it will still be a List when it reaches the function:
Example
def my_function(food):
for x in food:
print(x)
fruits = [«apple», «banana», «cherry»]
Return Values
To let a function return a value, use the return statement:
Example
The pass Statement
function definitions cannot be empty, but if you for some reason have a function definition with no content, put in the pass statement to avoid getting an error.
Example
Recursion
Python also accepts function recursion, which means a defined function can call itself.
Recursion is a common mathematical and programming concept. It means that a function calls itself. This has the benefit of meaning that you can loop through data to reach a result.
The developer should be very careful with recursion as it can be quite easy to slip into writing a function which never terminates, or one that uses excess amounts of memory or processor power. However, when written correctly recursion can be a very efficient and mathematically-elegant approach to programming.
In this example, tri_recursion() is a function that we have defined to call itself («recurse»). We use the k variable as the data, which decrements ( -1 ) every time we recurse. The recursion ends when the condition is not greater than 0 (i.e. when it is 0).
To a new developer it can take some time to work out how exactly this works, best way to find out is by testing and modifying it.
Example
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k — 1)
print(result)
else:
result = 0
return result
print(«\n\nRecursion Example Results»)
tri_recursion(6)
How to Define And Call Functions in Python
Oluseye Jeremiah
Python is a powerful and versatile programming language that offers a wide range of functionalities for developers.
One of the most essential features of Python is the ability to define and call functions.
A function is a block of code that performs a specific task. In Python, defining and calling functions is easy and can greatly improve the readability and reusability of your code.
How to Define a Function
Defining a function in Python involves two main steps: defining the function and specifying the arguments it takes.
To define a function, you use the def keyword followed by the name of the function and parentheses (). If the function takes any arguments, they are included within the parentheses. The code block for the function is then indented after the colon.
def greet(name): print("Hello, " + name + "! How are you?")
In this example, we define a function called greet that takes one argument called name . The function then prints out a greeting message to the console that includes the name argument.
How to Call a Function
Once you have defined a function, you can call it in your code as many times as you need.
To call a function in Python, you simply type the name of the function followed by parentheses (). If the function takes any arguments, they are included within the parentheses.
In this example, we call the greet function with the argument «John». The output to the console would be:
Python Function Code Examples
Here’s a complete code example that defines and calls the greet function:
def greet(name): print("Hello, " + name + "! How are you?") greet("John")
When you run this code, it will output the following to the console:
Let’s take a more advanced example of defining and calling functions in Python.
Let’s say you want to write a function that takes in a list of integers and returns a new list with all the even numbers in the original list. Here’s how you could define and call this function:
def get_even_numbers(numbers): even_numbers = [] for number in numbers: if number % 2 == 0: even_numbers.append(number) return even_numbers numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = get_even_numbers(numbers) print(even_numbers)
In this example, we define a function called get_even_numbers that takes one argument called numbers. The function then creates an empty list called even_numbers and loops through each number in the numbers list.
If the number is even, it is added to the even_numbers list using the append method. Finally, the function returns the even_numbers list.
To call this function, we first create a list of numbers called numbers with the values [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. We then call the get_even_numbers function with the numbers list as an argument and assign the returned value to a new list called even_numbers.
Finally, we print out the even_numbers list to the console.
When you run this code, it will output the following to the console:
This is the list of even numbers in the original numbers list.
This example demonstrates how to define a more complex function that performs a specific task, and how to call that function with the appropriate arguments.
By breaking down complex tasks into smaller, reusable functions, you can make your code more readable, maintainable, and efficient.
Conclusion
Defining and calling functions in Python is a straightforward process that can greatly improve the functionality and readability of your code.
With Python’s simple syntax and powerful capabilities, you can define and call functions with any number of arguments and perform any number of tasks within the function code block.
So go ahead and start defining and calling functions in your Python code to take your programming skills to the next level.