Lecture: Functions in Python
def hello(): print('Hello') print('Hi') print('Tom')
hello() hello()
Lecture: Passing arguments to function
def add(): a= 10 b= 20 print(a+b) add()
def add(a,b): print(a+b) add()
add(10,20) add(20,40) add(34,23)
Lecture: Keyword arguments
def speed(distance,time): s = distance/time return s avgspeed = speed(100,2) print(avgspeed) avgspeed = speed(2,100) print(avgspeed)
Calling the above function with keyword arguments
avgspeed = speed(time=2,distance=100) print(avgspeed)
Lecture: Default parameters
def area(pi,radius): a = pi * radius * radius return a circle_area = area(3.14,10) print(circle_area)
Making the pi argument as default argument
def area(radius,pi=3.14):
Now even if you dont pass in the value of PI in the function call it still works fine
circle_area = area(10)
Passing pi as 3.15
circle_area = area(10,3.15)
Lecture: Making function return a value
def add(a,b): c= a+b return c result = add(10,20) print(result)
Lecture: calling a function inside another function
def add(a,b): return a+b def square(c): return c*c result = square(add(2,3)) print(result)
Lecture: Returning multiple values from a function
def circle(r): area = 3.14*r*r circumfurence = 2*3.14*r return area,circumfurence # calling the function and extracting the value a,c = circle(10) print(f"Area of a circle is {a}, circumference is {c}")
Lecture: Passing list to a function
def sum(numbers): total = 0 for number in numbers: total = total + number return total result = sum([1,2,3,4,5]) print(result)
Lecture: Returning a list
def remove_duplicates(numbers): # create a new list which does not contain duplicates new_list =[] for number in numbers: if number not in new_list: new_list.append(number) return new_list list = [1,2,3,4,3,4,5,2,1,7,8,9] result = remove_duplicates(list) print(result)
A simpler way is by using set()
Take the list, pass it to the set it will remove the duplicate elements.
Then convert the set back into a list:
def remove_duplicates(lst): return list(set(lst))
Lecture: Global & Local Variables
def add(): count =1 print(count) def sub(): count =2 print(count) sub() add()
Lecture: Accessing global variable inside a function
count = 10 def increment(): global count count = count + 1 print(count) increment()
Lecture: Check if a string is palindrome
word = "panasonic" # treat a string like a list print(word[0]) # get the length of string l = len(word) # loop through all the items from the start print('Printing the string straight') for i in range(l): print(word[i]) # loop through the items in reverse print('Printing the string in reverse') for i in range(l): print(word[l-i-1]) #comparing and returning if palindrome palindrome_flag = True for i in range(l): if word[i] != word[l-i-1]: palindrome_flag = False break else: palindrome_flag = True if palindrome_flag: print("The string is a palindrome") else: print('The string is not a palindrome') #converting the above code into a function def check_palindrome(word): #get the length of the string l = len(word) for i in range(l): if word[i] != word[l-i-1]: return False return True # call the above function print(check_palindrome("racecar"))
Lecture: EMI Calculator
#formula to calculate emi is: P x R x (1+R)^N / [(1+R)^N-1] #P: Principal loan amount = INR 10,000,00 #N: Loan tenure in months = 120 months #R: Interest rate per month [7.2/12/100] = 0.006 def emi_calculator(principal,rate,time): #calculate the monthly rate r = rate/12/100 emi = (principal * r * (1+r)**time) / ((1+r)**time -1 ) return emi #checking the function print(emi_calculator(4858900, 8.75, 240))
Lecture: Factorial Using Recursion in Python
Python code to calculate factorial:
def factorial(number): if number ==1: return 1 else: return number * factorial(number-1) print(factorial(4)) #how the iterations work #factorial(4) => return 4 * factorial(3) #factorial(3) => return 3 * factorial(2) #factorial(2) => return 2 * factorial(1) #factorial(1) => return 1
Lecture: Variable length positional arguments
def add(*args): sum = 0 for n in args: sum = sum+n print(sum) add() add(10) add(20, 30) add(40, 50, 60)
Lecture: Variable length keyword arguments
def product(**kwargs): for key, value in kwargs.items(): print(key+":"+value) product(name='iphone', price="700") product(name='iPad', price="400", description="This is an ipad")
Lecture: Decorators in Python
def chocolate(): print('chocolate') chocolate()
def chocolate(): print('chocolate') # this decorator function accepts function as argument def decorator(func): # inside the decorator function we have another function def wrapper(): print('Wrapper up side') # now here I call the func func() print('Wrapper down side') # now the decorator needs to return this wrapper return wrapper # now to call the functions, i first call the decorator and then pass chocolate inside it # then assign the function back to the previous main function i.e chocolate # finally call the chocolate function chocolate = decorator(chocolate) chocolate()
def decorator(func): # inside the decorator function we have another function def wrapper(): print('Wrapper up side') # now here I call the func func() print('Wrapper down side') # now the decorator needs to return this wrapper return wrapper @decorator def chocolate(): print('chocolate') chocolate()
Lecture: Reusing decorators
@decorator def cake(): print('cake') cake()
Lecture: Decorating functions which accept arguments
@decorator def cake(name): print('cake'+name) cake("apple")
def decorator(func): def wrapper(name): print('Wrapper up side') func(name) print('Wrapper down side') return wrapper
chocolate()
def decorator(func): def wrapper(*args, **kwargs): print('Wrapper up side') func(*args, **kwargs) print('Wrapper down side') return wrapper @decorator def chocolate(): print('chocolate') @decorator def cake(name): print('cake'+name) chocolate() cake("Mango")
Lecture: Decorating functions that return a value
def total(price): # Let's assume there was some code here which calculated the total amount return price
Now lets create a decorator for it:
def summer_discount_decorator(func): def wrapper(price): # take the value inside the total and return func(price) return func(price/2) return wrapper
Entire code:
def summer_discount_decorator(func): def wrapper(price): # take the value inside the total and return func(price) return func(price/2) return wrapper @summer_discount_decorator def total(price): # Let's assume there was some code here which calculated the total amount return price print(total(20))