0% found this document useful (0 votes)
7 views

functions

The document provides an overview of functions in Python, covering their definition, calling, and characteristics such as dynamic and strong typing. It discusses concepts like closures, lambda functions, and built-in functions like map, reduce, and filter. Additionally, it explains default values for arguments, keyword arguments, and the absence of function overloading in Python.

Uploaded by

Kanza Fatima
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

functions

The document provides an overview of functions in Python, covering their definition, calling, and characteristics such as dynamic and strong typing. It discusses concepts like closures, lambda functions, and built-in functions like map, reduce, and filter. Additionally, it explains default values for arguments, keyword arguments, and the absence of function overloading in Python.

Uploaded by

Kanza Fatima
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

Functions in Python

Function
• 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.
Example
def my_function():
print("Hello from a function")
Defining Functions
Function definition begins with Function name and its
“def.” arguments.

def get_final_answer(filename):
“““Documentation
String””” line1
line2 Colon.
return total_counter

The indentation
matters… First line
with less The keyword ‘return’ indicates
indentation is considered to the value to be sent back to
be outside of the function the caller.
definition.
No header file or declaration of types of function or
arguments
Python and Types

 Dynamic typing: Python determines the


data types of variable bindings in a
program automatically
 Strong typing: But Python’s not casual
about types, it enforces the types of
objects
 For example, you can’t just append an
integer to a string, but must first convert
it to a string
x = “the answer is ” # x bound to a
string y = 23 # y bound to an
Calling a Function
 The syntax for a function call is:
>>> def myfun(x, y):
return x * y
>>> myfun(3, 4)
12
 Parameters in
Python are Call by
Assignment
• Old values for the variables that are
parameter names are hidden, and
these variables are simply made to
refer to the new values

Functions without returns
 All functions in Python have a return
value, even if no return line inside the
code
 Functions without a return return the
special value None
•None is a special constant in the
language
•None is used like NULL, void, or nil in
other languages
•None is also logically equivalent to
False
•The interpreter’s REPL doesn’t print
Function overloading? No.

 There is no function overloading in


Python
• Unlike C++, a Python function is
specified by its name alone
The number, order, names, or types of
arguments cannot be used to distinguish
between two functions with the same
name
• Two different functions can’t have the
same name, even if they have
different arguments
Default Values for Arguments
 You can provide default values
for a function’s arguments
 These arguments are optional
when the function is called

>>> def myfun(b, c=3,


d=“hello”):
return b +
c
>>> myfun(5,3,”hello”)
>>> myfun(5,3)
>>> myfun(5)

All of the above function calls


Keyword Arguments
 Can call a function with some/all of its
arguments out of order as long as you
specify their names
>>> def foo(x,y,z): return(2*x,4*y,8*z)
>>> foo(2,3,4)
(4, 12, 32)
>>> foo(z=4, y=2,
x=3) (6, 8, 32)
>>> foo(-2, z=-4,
y=-3)
(-4, -12, -32)
 Can be combined
with defaults, too
>>> def
foo(x=1,y=2,z=3):
Functions are first-class objects
Functions can be used as any
other datatype, eg:
• Arguments to function
• Return values of functions
• Assigned to variables
• Parts of tuples, lists, etc
>>> def square(x): return x*x
>>> def applier(q, x): return q(x)
>>> applier(square, 7)
49
Lambda Notation
 A lambda function is a function that can be defined
without a name, and is often used for simple, one-
time operations.
lambda arguments : expression
The expression is executed and the result is
returned:
Example Add 10 to argument a, and return
the result:
x = lambda a : a + 10
print(x(5)) Ans
15
Example: composition
Function composition is the way of combining two or more
functions in such a way that the output of one function
becomes the input of the second function and so on
# Function to add 2
# to a number
def add(x):
return x + 2
Output:
# Function to multiply
# 2 to a number Adding 2 to 5 and multiplying the result
def multiply(x): with 2: 14
return x * 2

# Printing the result of


# composition of add and
# multiply to add 2 to a number
# and then multiply by 2
print("Adding 2 to 5 and multiplying the
result with 2: ",
multiply(add(5)))
Closure
• In Python, a closure is a powerful concept
that allows a function to remember and
access variables, even when the function is
executed outside that scope.
• Closures are closely related to nested
functions and are commonly used in
functional programming, event handling and
callbacks.
• A closure is created when a function (the
inner function) is defined within another
function (the outer function) and the inner
function references variables from the outer
function.
• Closures are useful when you need a
function to retain state across multiple calls,
Example: closure
def fun(a):
# Outer function that remembers the
value of 'a'
def adder(b):
# Inner function that adds 'b' to 'a'
return a + b
return adder # Returns the closure

# Create a closure that adds 10 to any


number
val = fun(10)
Output
15
# Use the closure
30
print(val(5))
In this example:
print(val(20))
fun(10) creates a closure that remembers
the value 10 and adds it to any number
passed to the closure.
How Closures Work Internally?

When a closure is created, Python internally


stores a reference to the environment (variables in
the enclosing scope) where the closure was
defined. This allows the inner function to access
those variables even after the outer function has
completed.

In simple terms, a closure “captures” the values


from its surrounding scope and retains them for
later use. This is what allows closures to
remember values from their environment.
Map Function in Python
The map () function returns a map
object(which is an iterator) of the
results after applying the given
function to each item of a given
iterable (list, tuple, etc.).
Syntax: map(fun, iter)

Parameters:
fun: It is a function to which map
passes each element of given
iterable.
Example:
In this example, Python program showcases
the usage of the map function to double
each number in a given list by applying the
double function to each element, and then
printing the result as a list.

# Function to return double of n


def double(n):
return n * 2

# Using map to double all numbers


numbers = [5, 6, 7, 8]
result = map(double, numbers) Output
print(list(result)) [10, 12, 14, 16]
Reduce Function in Python

The reduce function is used to apply a particular function


passed in its argument to all of the list elements
mentioned in the sequence passed along.This function
is defined in “functools” module.

Syntax: reduce(func, iterable[, initial])

Parameters:
fun: It is a function to execute on each element of the
iterable object
iter: It is iterable to be reduced
Example :
In this example, we are using reduce() function from the
functools module to compute the product of elements in a given
list by continuously applying the lambda function that multiplies
two numbers together, resulting in the final product.

import functools
# Define a list of numbers
numbers = [1, 2, 3, 4]

# Use reduce to compute the product of list elements


product = functools.reduce(lambda x, y: x * y, numbers)
print("Product of list elements:", product)

Output
Product of list elements: 24
Filter Function in Python
The filter() method filters the given
sequence with the help of a function that
tests each element in the sequence to be
true or not.

Syntax: filter(function, sequence)

Parameters:
function: function that tests if each
element of a sequence is true or not.
sequence: sequence which needs to be
filtered, it can be sets, lists, tuples, or
containers of any iterators.
Example :
In this example, we defines a function is_even to check whether a
number is even or not. Then, it applies the filter() function to a list of
numbers to extract only the even numbers, resulting in a list containing
only the even elements. Finally, it prints the list of even numbers.

# Define a function to check if a number is even


def is_even(n):
return n % 2 == 0

# Define a list of numbers


numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Use filter to filter out even numbers


even_numbers = filter(is_even, numbers)
print("Even numbers:", list(even_numbers))

Output
Even numbers: [2, 4, 6, 8, 10]

You might also like