17
Python Basics 102: Introduction to Python Functions.
Hello world, In the previous post i introduced you to Python programming language, a high level language.
In this second post I am going to be taking you through python Functions.
everything we do comprises of a function somewhere.
So, what are functions in python!
- A function is a block of code that has statements that perform a specified task.
- They help in breaking down a program when it grows big.
- Functions minimize the repetition of code, hence they're reusable.
Let us define a function:
We use the def keyword to define a function:
# define a function that says Hi.
def greet():
print("Hello")
#calling the function
greet()
#prints> Hello
🤯 Awesome!
# structure of a function
def function_name(paramters):
"""docstring"""
statement(s)
A python function consists of the following:
- the
def
keyword, marks the beginning of a function - A function name to identify the purpose of the function, Function names follow the same guide rules of pep8 naming conventions.
- parameters to which values to our functions.
- A colon (:) to mark the end of a function definition.
- In the body start with a
"""docstring"""
, to explain what the function does. - One or more valid python statements that make up the function body.
- The
return
(optional) statement that returns a value to the function.
Functions takes variables as arguments.
Ways of defining arguments; using default, keyword and arbitrary arguments.
Defining functions with parameters. Parameters are identifiers in the function definition parentheses
#function parameters
def greet(name, msg):
print(f"Hello {name}, {msg}")
#call the function with the arguments
greet('Mark', 'Good Evening')
#prints> Hello Mark Good Evening
Here, the function greet()
has two parameters name, msg
When the function is called, the two parameters
are passed as arguments
.
A function can take a variable number of arguments.
- Function Default Arguments
def greetings(name, msg="How are you?"):
print(f"Hello, {name} {msg}")
#positional arguments.
greetings('Asha')
#> Hello, Asha How are you?
Even if we call the function with just one argument, it will complete smoothly without an error unlike in the previous function.
When an argument for msg
is provided in function call, it will overwrite the default argument.
When a function is called with values, they get assigned to their specific positions.
But this can be changed when calling a function, the order can be altered with keywords, like in the above function we could call it like this:
#keyword arguments in order
greetings(name="fast furious", msg="is out!")
#keyword arguments out of order
greetings(msg="is out!", name="Vin")
Well give it a try, everythings works just fine.
At times you might not know the number of arguments to be passed in a function.
In situations like this, python allows the use of an asterisk (*) to denote arguments. example:
def greet(*names):
for name in names:
print(f"Hello {name}.")
greet('juma', 'larry', 'lilian')
#> Hello juma.
#> Hello larry.
#> Hello lilian.
Recusion with python functions.
A repeated procedure can be reffered to as a Recursion.
A recursive function, is a function that calls itself.
def recurse():
#statements
recurse() #recursive call
recurse()
An example:
#finding the factorial of a number
def factor(x):
"""
this function finds the factorial of a given number
factorial number is the product of a
number starting from 1 to that number itself
"""
if x == 1:
return 1
else:
return (x * factor(x-1))
num = 3
print(f"factorial is: {factor(num)}")
- Makes code look clean and elegant.
- Breakdown of complex tasks into smaller sub-tasks.
- Sequencing is easier compared to nested iteration.
- They are difficult to debug.
- Recursive calls take alot of memory and time.
- Hard to read or follow.
An anonymous function is a function that has no name.
They are also called lambda functions.
Defining a lambda function:
#syntax:
lambda arguments: expression
They can have multiple arguments but only one expression.
working example:
#sum of numbers
sum = lambda x: x+2
print(sum(2))
#> 2+2= 4
#multiple args
product = lambda x, y: x*y
print(product(2, 6))
#> 2*6 = 12
Lambda functions are used when a nameless function is required for a short period of time.
They are best used with in-built functions, filter() & map().Read more
That's it for now, Hope you enjoyed reading this article.
let us learn python!!
Be cool, Keep coding.
17