Python functions VIDEO
A function is a block of code which only runs when it is called. why to use function Automate repetitive tasks Allow code reuse Improve code readability Clean-up code Allow easier refactoring keywords def
- function start return
- return result of function pass
- do nothing python function syntax def < function_name > ( < params > ):
# <statement>
# <statement>
return < value >
find factorial of a number write a function to find the factorial of a given number def factorial ( number ):
result = 1
for i in range ( 1 , number + 1 ):
result = result * i
return result
# call the function
print ( factorial ( 4 ))
# Output: 24
print ( factorial ( 5 ))
# Output: 120
one line function - lambda we can write a one line function using keyword "lambda" square = lambda x : x ** 2
print ( square ( 5 ))
# output: 25
default params we can pass default params to a function def add ( x = 10 , y = 20 ):
return x + y
# called func with no arguments
default = add ()
print ( default )
# output: 30
# call func with arguments
result = add ( 1 , 2 )
print ( result )
# output: 3
positional argumets & keyword arguments we call a function without keyword arguments then it considers the position and assigns values accordingly. otherwise, we need to pass value with keyword. check the below examples def pow ( x , y ):
return x ** y
# call by positional argument
result = add ( 3 , 2 )
print ( result )
# output: 9
# call by keyword argument
result = add ( y = 3 , x = 2 )
print ( result )
# output: 8
number of params are unknown - *args, **kwargs *args
are used when number of params are unknown. **kwargs
are used when number of keyword params are unknown chek the below examples def sum ( * args ):
total = 0
for num in args :
total += num
return total
print ( sum ( 1 , 2 ))
# output: 3
print ( sum ( 1 , 2 , 3 ))
# output: 6
print ( sum ( 1 , 2 , 3 , 4 , 5 ))
# output: 15
*args
results in a tuple. hence, we can iterate over it. def print_data ( ** kwargs ):
for k , v in kwargs . items ():
print ( f ' { k } = { v } ' )
print ( print_data ( first_name = "Anji" , last_name = "B" ))
# output:
# first_name = Anji
# last_name = B
print ( print_data ( physics = "PHY" , maths = "MAT" , social = "SOC" ))
# output:
# physics = PHY
# maths = MAT
# social = SOC
**kwargs
gives a dictionary. so, we can use dict
methods and iterate over it. References