04. WORKING WITH FUNCTIONS-2.pdf
Document Details
Uploaded by DynamicFlute5612
Abu Dhabi Indian School Al Wathba
Tags
Full Transcript
for more updates visit: www.python4csip.com VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR WORKING WITH FUNCTIONS Divide and Conquer f...
for more updates visit: www.python4csip.com VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR WORKING WITH FUNCTIONS Divide and Conquer for more updates visit: www.python4csip.com Introduction Large programs are often difficult to manage, thus large programs are divided into smaller units known as functions. It is simply a group of statements under any name i.e. function name and can be invoked (call) from other part of program. Take an example of School Management Software, now this software will contain various tasks like Registering student, Fee collection, Library book issue, TC generation, Result Declaration etc. In this case we have to create different functions for each task to manage the software development. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Introduction Set of functions is stored in a file called MODULE. And this approach is known as MODULARIZATION, makes program easier to understand, test and maintain. Commonly used modules that contain source code for generic need are called LIBRARIES. Modules contains set of functions. Functions is of mainly two types: Built-in Functions User-Defined Functions VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Advantages of Function PROGRAM HANDLING EASIER : only small part of the program is dealt with at a time. REDUCED LoC: as with function the common set of code is written only once and can be called from any part of program, so it reduces Line of Code EASY UPDATING : if function is not used then set of code is to be repeated everywhere it is required. Hence if we want to change in any formula/expression then we have to make changes to every place, if forgotten then output will be not the desired output. With function we have to make changes to only one location. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com User Defined Functions A function is a set of statements that performs a specific task; a common structuring elements that allows you to use a piece of code repeatedly in different part of program. Functions are also known as sub-routine, methods, procedure or subprogram. Syntax to create USER DEFINED FUNCTION def function_name([comma separated list of parameters]): statements…. statements…. KEYWORD FUNCTION DEFINITION VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Points to remember… Keyword def marks the start of function header Function name must be unique and follows naming rules same as for identifiers Function can take arguments. It is optional A colon(:) to mark the end of function header Function can contains one or more statement to perform specific task An optional return statement to return a value from the function. Function must be called/invoked to execute its code VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com User Defined function can be…. 1. Function with no arguments and no return 2. Function with arguments but no return value 3. Function with arguments and return value 4. Function with no argument but return value Let us understand each of the function type with example…. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Function with no argument and no return This type of function is also known as void function FUNCTION NAME NO PARAMETER, HENCE VOID Return keyword not used FUNCTION CALLING, IT WILL INVOKE welcome() TO PERFORM ITS ACTION VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Function with parameters but no return value Parameters are given in the parenthesis separated by comma. Values are passed for the parameter at the time of function calling. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Function with parameters but no return value VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Function with parameter and return We can return values from function using return keyword. The return value must be used at the calling place by – Eitherstore it any variable Use with print() Use in any expression VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Function with return VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Function with return NOTE: the return statement ends a function execution even if it is in the middle of function. Anything written below return statement will become unreachable code. def max(x,y): if x>y: return x else: return y VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR print(“Iam not reachable”) for more updates visit: www.python4csip.com Function not returning value Function may or may not return a value. Non returning function is also known as VOID function. It may or may not contain return. If it contain return statement then it will be in the form of: return [no value after return] VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Parameters and Arguments in Function Parameters are the value(s) provided in the parenthesis when we write function header. These are the values required by function to work If there are more than one parameter, it must be separated by comma(,) An Argument is a value that is passed to the function when it is called. In other words arguments are the value(s) provided in function call/invoke statement Parameter is also known as FORMAL ARGUMENTS/PARAMETERS Arguments is also known as ACTUAL ARGUMENTS/PARAMETER Note: Function can alter only MUTABLE TYPE values. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Example of Formal/Actual Arguments FORMAL ARGUMENT ACTUAL ARGUMENT VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Types of Arguments There are 4 types of Actual Arguments allowed in Python: 1. Positional arguments 2. Default arguments 3. Keyword arguments 4. Variable length arguments VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Positional arguments Are arguments passed to a function in correct positional order Here x is passed to a and y is passed to b i.e. in the order of their position VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com If the number of formal argument and actual differs then Python will raise an error VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Default arguments Sometimes we can provide default values for our positional arguments. In this case if we are not passing any value then default values will be considered. Default argument must not followed by non-default arguments. def interest(principal,rate,time=15): VALID def interest(principal,rate=8.5,time=15): def interest(principal,rate=8.5,time): INVALID VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Default arguments VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Default arguments VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Keyword(Named) Arguments The default keyword gives flexibility to specify default value for a parameter so that it can be skipped in the function call, if needed. However, still we cannot change the order of arguments in function call i.e. you have to remember the order of the arguments and pass the value accordingly. To get control and flexibility over the values sent as arguments, python offers KEYWORD ARGUMENTS. This allows to call function with arguments in any order using name of the arguments. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Keyword(Named) Argument VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Rules for combining all three type of arguments An argument list must first contain positional arguments followed by keyword arguments Keyword arguments should be taken from the required arguments You cannot specify a value for an argument more than once VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Example of legal/illegal function call def Average(n1,n2,n3=100): return (n1+n2+n3)/3 FUNCTION CALL LEGAL/ REASON ILLEGAL Average(n1=20, n2=40,n3=80) LEGAL Non default values provided as named arguments Average(n3=10,n2=7,n1=100) LEGAL Keyword argument can be in any order Average(100,n2=10,n3=15) LEGAL Positional argument before the keyword arguments Average(n3=70,n1=90,100) ILLEGAL Keyword argument before the positional arguments Average(100,n1=23,n2=1) ILLEGAL Multiple values provided for n1 Average(200,num2=90,n3=11) ILLEGAL VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & Undefined argument NUM2 SACHIN BHARDWAJ, PGT(CS), KVILLEGAL Average(21,num3=900) NO.1 TEZPUR A required argument n2 is missing for more updates visit: www.python4csip.com Returning Multiple values Unlike other programming languages, python lets you return more than one value from function. The multiple return value must be either stored in TUPLE or we can UNPACK the received value by specifying the same number of variables on the left of assignment of function call. Let us see an example of both :- VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Multiple return value stored in TUPLE VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Multiple return value stored by unpacking in multiple variables VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Composition Refers to using an expression as a part of large expression, or a statement as a part of large statement. Examples Max((a+b),(c+a)) # Arithmetic Prize(Cardor Cash) # Logical name="Vikram“ print(name.replace("m","nt").upper()) #function VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Scope of Variables SCOPE means in which part(s) of the program, a particular piece of code or data is accessible or known. In Python there are broadly 2 kinds of Scopes: Global Scope Local Scope VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Global Scope A name declared in top level segment(__main__) of a program is said to have global scope and can be used in entire program. Variable defined outside all functions are global variables. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Local Scope A name declare in a function body is said to have local scope i.e. it can be used only within this function and the other block inside the function. The formal parameters are also having local scope. Let us understand with example…. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Example – Local and Global Scope VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Example – Local and Global Scope „a‟ is not accessible here because it is declared in function area(), so scope is local to area() VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Example – Local and Global Scope Variable „ar‟ is accessible in function showarea() because it is having Global Scope VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com This declaration “global count” is necessary for using global variables in function, other wise an error “local variable 'count' referenced before assignment” will appear because local scope will create variable “count” and it will be found unassigned VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Lifetime of Variable Is the time for which a variable lives in memory. For Global variables the lifetime is entire program run i.e. as long as program is executing. For Local variables lifetime is their function‟s run i.e. as long as function is executing. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Name Resolution (Scope Resolution) For every name used within program python follows name resolution rules known as LEGB rule. (i) LOCAL : first check whether name is in local environment, if yes Python uses its value otherwise moves to (ii) (ii) ENCLOSING ENVIRONMENT: if not in local, Python checks whether name is in Enclosing Environment, if yes Python uses its value otherwise moves to (iii) GLOBAL ENVIRONMENT: if not in above scope Python checks it in Global environment, if yes Python uses it otherwise moves to (iv) BUILT-IN ENVIRONMENT: if not in above scope, Python checks it in built-in environment, if yes, Python uses its value otherwise Python would report the error: name not defined VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Predict the output Program with variable “value” in both LOCAL and GLOBAL SCOPE VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Predict the output Program with variable “value” in both LOCAL and GLOBAL SCOPE VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Predict the output Using GLOBAL variable “value” in local scope VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Predict the output Using GLOBAL variable “value” in local scope VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Predict the output Variable “value” neither in local nor global scope VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Predict the output Variable “value” neither in local nor global scope VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Predict the output Variable in Global not in Local (input in variable at global scope) VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Predict the output Variable in Global not in Local (input in variable at global scope) VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Mutability/Immutability of Arguments/Parameters and function call VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Mutability/Immutability of Arguments/Parameters and function call VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Mutability/Immutability of Arguments/Parameters and function call From the previous example we can recall the concept learned in class XI that Python variables are not storage containers, rather Python variables are like memory references, they refer to memory address where the value is stored, thus any change in immutable type data will also change the memory address. So any change to formal argument will not reflect back to its corresponding actual argument and in case of mutable type, any change in mutable type will not change the memory address of variable. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Mutability/Immutability of Arguments/Parameters and function call Because List if Mutable type, hence any change in formal argument myList will not change the memory address, So changes done to myList will be reflected back to List1. However if we formal argument is assigned to some other variable or data type then link will break and changes will not reflect back to actual argument For example (if inside function updateData() we assign myList as: myList = 20 OR myList = temp VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing String to function Function can accept string as a parameter As per Python, string is immutable type, so function can access the value of string but cannot alter the string To modify string, the trick is to take another string and concatenate the modified value of parameter string in the newly created string. Let us see few examples of passing string to function… VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing string to function and count how many vowels in it VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Program to count how many times any character is present in string VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Program to Jumble the given string by passing it to function using temporary string VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing List to function We can also pass List to any function as parameter Due to the mutable nature of List, function can alter the list of values in place. It is mostly used in data structure like sorting, stack, queue etc. Let us see how to pass List to function by few examples: VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing list to function, and just double each value VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing list to function to double the odd values and half the even values VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing nested list to function and print all those values which are at diagonal position in the form of matrix VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing list to function to calculate sum and average of all numbers and return it in the form of tuple VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing list to function to calculate sum and average of all numbers and return it in the form of tuple VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing tuples to function We can also pass tuples to function as parameter Due to its immutability nature, function can only access the values of tuples but cannot modify it. Let us see how to pass tuples in function by few example… VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Input n numbers in tuple and pass it function to count how many even and odd numbers are entered. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Input n numbers in tuple and pass it function to count how many even and odd numbers are entered. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Creating a login program with the help of passing tuple to function VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Creating a login program with the help of passing tuple to function OUTPUT OF PREVIOUS PROGRAM VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing Dictionary to function Python also allows us to pass dictionaries to function Due to its mutability nature, function can alter the keys or values of dictionary in place Let us see few examples of how to pass dictionary to functions. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing dictionary to function with list and stores the value of list as key and its frequency or no. of occurrence as value VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing dictionary to function with key and value, and update value at that key in dictionary VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Passing dictionary to function with key and value, and update value at that key in dictionary VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Understanding of main() function in Python By default every program starts their execution from main() function. In Python including a main() function is not mandatory. It can structure our Python programs in a logical way that puts the most important components of the program in one function. We can get the name of current module executing by using built-in variable __name__ (2 underscore before and after of name) VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Understanding of main() function in Python We can observe, by default the name of module will be __main__ Most non-python programmers are having the habit of writing main() function where the important and starter code of programs are written. In Python we can also create main() and call it by checking __name__ to __main__ and then call any function, in this case main() VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Recursion It is one of the most powerful tool in programming language. It is a process where function calls itself again and again. Recursion basically divides the big problem into small problems up to the point where it can be solved easily, for example if we have to calculate factorial of a 5, we will divide factorial of 5 as 5*factorial(4), then 4*factorial(3), then 3*factorial(2), then 2*factorial(1) and now factorial of 1 can be easily solved without any calculation, now each pending function will be executed in reverse order. VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Condition for Implementing Recursion It must contain BASE CONDITION i.e. at which point recursion will end otherwise it will become infinite. BASE CONDITION is specified using „if‟ to specify the termination condition Execution in Recursion is in reverse order using STACK. It first divide the large problem into smaller units and then starts solving from bottom to top. It takes more memory as compare to LOOP statement because with every recursion call memory space is allocated for local variables. The computer may run out of memory if recursion becomes infinite or termination condition not specified. It is less efficient in terms of speed and execution time Suitable for complex data structure problems like TREE, GRAPH etc VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Example - Recursion VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Example - Recursion VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR for more updates visit: www.python4csip.com Questions based on functions WAP to create function Lsearch() which takes List and number to search and return the position of number in list using Linear Searching method WAP to create function Bsearch() which takes List and number to search and return the position of number in list using Binary Searching method What is the difference between Local and Global variables? Also give suitable Python code to illustrate both VINOD KUMAR VERMA, PGT(CS), KV OEF KANPUR & SACHIN BHARDWAJ, PGT(CS), KV NO.1 TEZPUR