Python : Functions

Function is named sequence of statements that performs a required activity/computation. Best way to describe functions is that these are tools used to compartmentalise your code.

User defined functions

  • A function is a block of organised, reusable code that is used to perform a single, related action.
  • Function needs to be defined before its called.
  • It runs when it is called.
  • A function can return data as a result.

Function naming convention is same as that of variable naming conventions

  • It can have alphabets, numbers and underscore
  • It can not have special character except underscore
  • It can not start wit number, it can start only with alphabets or underscore

Simple function definition

def first_function():
    print("Inside first_function")

first_function()

Output

$ python3.6 funtions00.py 
Inside first_function

Empty parenthesis indicates that function does not take any input parameters.

Passing arguments

print("*** Start of the program ***")

def first_function(first_name,last_name,age):
    """
    simple functions with parameters
    """
    print('first_name : ', first_name)
    print('last_name  : ', last_name)
    print('age        : ', age)
    return

first_name = 'Jason'
last_name = 'Bourne'
age1 = 27
first_function(first_name,last_name,age1)

print("*** Second type of function ***")

def second_function(first_name,last_name,age):
    print('first_name : ', first_name)
    print('last_name  : ', last_name)
    print('age        : ', age)
    return

f_name = 'Jason'
l_name = 'Bourne'
second_function(f_name,l_name,27)

print("*** Third type of function ***")

def third_function(first_name,last_name,age=29):
    print('first_name : ', first_name)
    print('last_name  : ', last_name)
    print('age        : ', age)
    return

f_name = 'Jason'
l_name = 'Bourne'
third_function(f_name,l_name)

print("*** Fourth type of function ***")

def fourth_function(first_name,last_name='two',age=29):
    print('first_name : ', first_name)
    print('last_name  : ', last_name)
    print('age        : ', age)
    return

f_name = 'Jason'
l_name = 'Bourne'
age = 28
fourth_function(f_name,)

print("*** End of the program ***")
  • function arguments are positional in nature. i.e. you need to pass variables or values in the same sequence.
  • Optional parameters should be kept at the end and these needs to be handled using default values in function header.
  • We can use keyword parameters to have flexibility of using any sequence but in such cases, we need to define default value and also argument are named argument.

Output of above program is as below

$ python3.6 funtions03-passing\ arguments.py
*** Start of the program ***
first_name : Jason
last_name : Bourne
age : 27
*** Second type of function ***
first_name : Jason
last_name : Bourne
age : 27
*** Third type of function ***
first_name : Jason
last_name : Bourne
age : 29
*** Fourth type of function ***
first_name : Jason
last_name : two
age : 29
*** End of the program ***

 

Statements inside a function will not be executed unless function is called by name

Important note for passing arguments to function

  • list is always passed by reference
  • other variables are passed by value
  • Variables defined in function are local to that function

Types of function

Details seen above are user defined functions. In general functions can be of following types

  1. Built in functions
  2. Type conversion functions
  3. User defined functions

Let us look at other category of functions

Built-in functions

Python provides large number of built-in functions which we can use without defining them. These functions address common problems faced by most of the developers.

Here is simple example. It has two functions, len(), it returns left of the argument that is passed and second is print(). Yes, print is a functions, in fact this is a major change between python 2 and 3.

print("*** Start of the program ***")

length = len("techtrekking")
print("length : ", length)

print("*** End of the program ***")

Output

$ python3.6 funtions01.py
*** Start of the program ***
length : 12
*** End of the program ***

Few examples of python built-in functions

Function Purpose
abs() returns absolute value
max() returns maximum value from array passed
type() Returns the data type of the variable

Type Conversion Functions

These functions can convert data type of variable however not all data types can be changed. e.g. You can convert int to float and vice versa without any issue however if you try to convert character data type having actual characters it will throw some error however this function can be used to convert data type of variable having numeric value but character data type.

>>> int(2.1)
2
>>> int(aa)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'aa' is not defined
>>> int('10')
10
>>> 

Return Values and return Statements

When python function is called, it will do some calculations and return the result of the calculations using return statement. However sometimes you might call a function only to display something and you dont need anything return, in such cases, you can skip teh return statement.

If you don’t write the return statement a value “None” will be returned. In Python there is a value called None, which represents the absence of a value. None is the only value of the NoneType data type.  This is similar to undefined in JavaScript

 

lambda

A function is an object that is able to accept some sort of input, possibly modify it, and return some sort of output.
In Python, a lambda function is a one-line shorthand for function.
A lambda function can take any number of arguments, but can only have one expression.

>>> mylambda =lambda a: a+10
>>> print(mylambda(11))
21
>>>mylambda = lambda x, y : x * y
>>>print(mylambda(5, 6))
30
>>>mylambda = lambda x, y, z : x + y + x
>>>print(mylambda(5, 6, 2))

Due to characteristics of lambda, it can not have default values and it can not handle complex logic

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.