Python Programming Prof. K. Adisesha 1 Python programming Introduction A program is a sequence of instructions that specifies how to perform a Computation. Learning to write computer program is very much like learning any skill. First, we should understand the problems well and then try to solve it in a logical manner. We write a program in a language which computer can understand. Though there are many different programming languages such as BASIC, Pascal, C, C++, Java, Ruby, Python, etc. but we will study Python in this course. Guido Van Rossum created python when he was working at CWI (Centrum Wiskunde & Informatica) which is a National Research Institute for Mathematics and Computer Science in Netherlands. The language was released in I991. Python got its name from a BBC comedy series from seventies- “Monty Python's Flying Circus”. Python used to develop both Procedural approach and Object Oriented approach of programming. It is free to use software. If you find that you do not have python installed on your computer, then you can download it free from the following website: https://www.python.org/. It is used for:  Used on a server to create web applications.  Used alongside software to create workflows.  Used database systems. It can also read and modify files.  Used to handle big data and perform complex mathematics.  Used for rapid prototyping, or for production-ready software development. Some of the features, which make Python so popular, are as follows:  It is a general-purpose programming language, which can be used for both scientific and non- scientific programming.  It is a platform independent programming language.  It is a very simple high-level language with vast library of add-on modules.  It is excellent for beginners as the language is interpreted, hence gives immediate results.  The programs written in Python are easily readable and understandable.  It is suitable as an extension language for customizable applications to access and work with MySQL and MongoDB databases  It is easy to learn and use. The language is used by companies in real revenue generating products, such as:  In operations of Google, search engine, YouTube, etc.  Bit-Torrent peer to peer file sharing is written using Python  Intel, Cisco, HP, IBM, etc use Python for hardware testing.  Maya provides a Python scripting API  I–Robot uses Python to develop commercial Robot.  NASA and others use Python for their scientific programming task. Why Python?  Python works on different platforms (Windows, Mac, Linux, Raspberry Pi,).
Python Programming Prof. K. Adisesha 2  Python has a simple syntax similar to the English language.  Python has syntax that allows developers to write programs with fewer lines than some other programming languages.  Python runs on an interpreter system, meaning that code can be executed as soon as it is written. This means that prototyping can be very quick.  Python can be treated in a procedural way, an object-orientated way or a functional way. Good to know  The most recent major version of Python is Python 3, However, Python 2, although not being updated with anything other than security updates, is still quite popular.  Python can be written in any text editors. It is possible to write Python in an Integrated Development Environment (IDLE), such as Thonny, Pycharm, Netbeans or Eclipse, which are particularly useful when managing larger collections of Python files. Python Syntax compared to other programming languages  Python was designed for readability, and has some similarities to the English language with influence from mathematics.  Python uses new lines to complete a command, as opposed to other programming languages, which often use semicolons or parentheses.  Python relies on indentation, using whitespace, to define scope; such as the scope of loops, functions and classes. Other programming languages often use curly-brackets for this purpose. First Step with Python To write and run Python program, we need to have Python interpreter installed in our computer. IDLE (GUI integrated) is the standard, most popular Python development environment. IDLE is an acronym of Integrated Development Environment. It lets edit, run, browse and debug Python Programs from a single interface. This environment makes it easy to write programs. Python shell can be used in two ways,  Interactive mode: Interactive Mode, as the name suggests, allows us to interact with OS  Script mode: script mode let us create and edit python source file. Python is an interpreted programming language, this means that as a developer you write Python (.py) files in a text editor and then put those files into the python interpreter to be executed. Interactive Mode For working in the interactive mode, we will start Python on our computer. When we start up the IDLE following window will appear:
Python Programming Prof. K. Adisesha 3 This is a primary prompt “>>>” indicating that the interpreter is expecting a python command. There is secondary prompt also which is “…” indicating that interpreter is waiting for additional input to complete the current statement. Interpreter uses prompt to indicate that it is ready for instruction. Therefore, we can say, if there is prompt on screen, it means IDLE is working in interactive mode. We type Python expression / statement / command after the prompt and Python immediately responds with the output of it. Let us start with typing print “Hello world” after the prompt. >>>print “Hello world” Hello world what we get is Python's response. It is also possible to get a sequence of instructions executed through interpreter. It is also possible to get a sequence of instructions executed through interpreter. To leave the help mode and return to interactive mode, quit command can be used. ^D (Ctrl+D) or quit () is used to leave the interpreter. ^F6 will restart the shell. Script Mode In script mode, we type Python program in a file and then use the interpreter to execute the content from the file. Working in interactive mode is convenient for beginners and for testing small pieces of code, as we can test them immediately. However, for coding more than few lines, we should always save our code so that we may modify and reuse the code. Python, in interactive mode, is good enough to learn experiment or explore, but its only drawback is that we cannot save the statements for further use and we have to retype all the statements to re-run them. To create and run a Python script, we will use following steps in IDLE, if the script mode is not made available by default with IDLE environment. 1. File>Open OR File>New Window (for creating a new script file) 2. Write the Python code as function i.e. script 3. Save it (^S) 4. Execute it in interactive mode- by using RUN option (^F5)
Python Programming Prof. K. Adisesha 4 Otherwise (if script mode is available) start from Step 2 If we write Example 1 in script mode, it will be written in the following way: Step 1: File> New Window Step 2: def test(): x=2 y=6 z = x+y print z Step 3: Use File > Save or File > Save As - for saving the file program files have names which end with .py Step 4: For execution, press ^F5, and we will go to Python prompt (in other window) >>> test() 8 Alternatively we can execute the script directly by choosing the RUN option. Variables and Types When we create a program, we often like to store values so that it can be used later. We use objects to capture data, which then can be manipulated by computer to provide information. By now, we know that object/ variable is a name, which refers to a value. Every object has: A. An Identity, - can be known using id (object) B. A Data type – can be checked using type (object) C. A value Let us study all these in detail A. Identity of the object: It is the object's address in memory and does not change once it has been created. B. Type (data type): It is a set of values, and the allowable operations on those values. It can be one of the following:
Python Programming Prof. K. Adisesha 5 1. Number Number data type stores Numerical Values. This data type is immutable i.e. value of its object cannot be changed (we will talk about this aspect later). These are of three different types: I. Integer & Long II. Float/floating point III. Complex  Integer & Long: Integers are the whole numbers consisting of + or – sign with decimal digits like 100000, -99, 0, 17. While writing a large integer value, do not use commas to separate digits. Also, integers should not have leading zeros. When we are working with integers, we need not to worry about the size of integer as Python automatically handle a very big integer value. When we want a value to be treated as very long integer, value append L to the value. Such values are treated as long integers by python. >>> a = 10 >>> b = 5192L #example of supplying a very long value to a variable >>> c= 4298114 >>> type(c) # type ( ) is used to check data type of value <type 'int'> Integers contain Boolean Type, which is a unique data type, consisting of two constants, True & False. A Boolean True value is Non-Zero, Non-Null and Non-empty. Example >>> flag = True >>> type(flag) <type 'bool'>  Floating Point: Numbers with fractions or decimal point are called floating point numbers. A floating point number will consist of sign (+,-) sequence of decimals digits and a dot such as 0.0, -21.9, 0.98333328, 15.2963. These numbers can also be used to represent a number in engineering/ scientific notation. -2.0X 105 will be represented as -2.0e5 2.0X10-5 will be 2.0E-5 Example y= 12.36  Complex: Complex number in python is made up of two floating point values, one each for real and imaginary part. For accessing different parts of variable (object) x; we will use x.real and x.image. Imaginary part of the number is represented by „j‟ instead of „i‟, so 1+0j denotes zero imaginary part. Example >>> x = 1+0j >>> print x.real,x.imag 1.0 0.0 2. None This is special data type with single value. It is used to signify the absence of value/false in a situation. It is represented by “none”.
Python Programming Prof. K. Adisesha 6 3. Sequence (Arrays) A sequence is an ordered collection of items, indexed by positive integers. It is combination of mutable and non-mutable data types. Three types of sequence data type available in Python are Strings, Lists & Tuples.  List is a collection, which is ordered and changeable. Allows duplicate members.  Tuple is a collection, which is ordered and unchangeable. Allows duplicate members.  Set is a collection, which is unordered and unindexed. No duplicate members.  Dictionary is a collection, which is unordered, changeable and indexed. No duplicate members. When choosing a collection type, it is useful to understand the properties of that type. Choosing the right type for a particular data set could mean retention of meaning, and, it could mean an increase in efficiency or security.  String: is an ordered sequence of letters/characters. They are enclosed in single quotes (‘…’) or double (“…”). The quotes are not part of string. They only tell the computer where the string constant begins and ends. They can have any character or sign, including space in them. These are immutable data types. We will learn about immutable data types while dealing with third aspect of object i.e. value of object. String literals in python are surrounded by either single quotation marks, or double quotation marks. 'hello' is the same as "hello". You can display a string literal with the print() function: Example >>> print("Hello") Hello >>> print('Hello') Hello It is possible to change one type of value/ variable to another type. It is known as type conversion or type casting. The conversion can be done explicitly (programmer specifies the conversions) or implicitly (Interpreter automatically converts the data type). Casting in python is therefore done using constructor functions:  int() - constructs an integer number from an integer literal, a float literal (by rounding down to the previous whole number), or a string literal (providing the string represents a whole number)  float() - constructs a float number from an integer literal, a float literal or a string literal (providing the string represents a float or an integer)  str() - constructs a string from a wide variety of data types, including strings, integer literals and float literals Example >>> a= 12.34 >>> b= int(a) >>> print b 12
Python Programming Prof. K. Adisesha 7  Lists: A list is a collection, which is ordered and changeable. In Python, lists are written with square brackets. List is also a sequence of values of any type. Values in the list are called elements / items. These are mutable and indexed/ordered. Example >>>thislist = ["apple", "banana", "cherry"] >>>print(thislist) ‘apple’, ‘banana’, ‘cherry’ Example >>>thislist = ["apple", "banana", "cherry"] >>>print(thislist[1]) ‘banana’  Tuples: A tuple is a collection, which is ordered and unchangeable. In Python, tuples are written with round brackets (..). Tuples are a sequence of values of any type, and are indexed by integers. They are immutable. Example >>>thislist = ("apple", "banana", "cherry") >>>print(thislist) ‘apple’, ‘banana’, ‘cherry’ Example >>>thislist = ("apple", "banana", "cherry") >>>print(thislist[1]) ‘banana’ 4. Sets A set is a collection, which is unordered and unindexed values, of any type, with no duplicate entry. In Python, sets are written with curly brackets. Sets are immutable. Example Example >>>thislist = {"apple", "banana", "cherry"} >>>print(thislist) ‘apple’, ‘banana’, ‘cherry’ 5. Mapping This data type is unordered and mutable. Dictionaries fall under Mappings.  Dictionaries: Can store any number of python objects. What they store is a key – value pairs, which are accessed using key. Dictionary is enclosed in curly brackets. Example d = {1:'a', 2:'b', 3:'c'} C. Value of Object (variable) – to bind value to a variable, we use assignment operator (=). This is also known as building of a variable. Variable Names A variable can have a short name (like x and y) or a more descriptive name (age, car, name, total). Rules for Python variables:
Python Programming Prof. K. Adisesha 8  A variable name must start with a letter or the underscore character  A variable name cannot start with a number  A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ )  Variable names are case-sensitive (age, Age and AGE are three different variables) It is a good practice to follow these identifier-naming conventions: 1. Variable name should be meaningful and short 2. Generally, they are written in lower case letters  Mutable and Immutable Variables A mutable variable is one whose value may change in place, whereas in an immutable variable change of value will not happen in place. Modifying an immutable variable will rebuild the same variable. Example >>>x=5 Will create a value 5 referenced by x >>>y=x This statement will make y refer to 5 of x >>> x=x+y As x being integer (immutable type) has been rebuild. In the statement, expression on RHS will result into value 10 and when this is assigned to LHS (x), x will rebuild to 10. Programmers choose the names of the variable that are meaningful. A variable name: Python Comments: As the program gets bigger, it becomes difficult to read it, and to make out what it is doing by just looking at it. So it is good to add notes to the code, while writing it.  Comments can be used to explain Python code.  Comments can be used to make the code more readable.  Comments can be used to prevent execution when testing code. Creating a Single Line Comment Comments starts with a # and Python will ignore them: Example #This is a comment print("Hello, World!") Creating a Multi-Line Comments Since Python will ignore string literals that are not assigned to a variable, you can add a multiline string (triple quotes) in your code, and place you comment inside it: """ This is a comment written in more than just one line """ print("Hello, World!")
Python Programming Prof. K. Adisesha 9 Keywords They are the words used by Python interpreter to recognize the structure of program. As these words have specific meaning for interpreter, they cannot be used for any other purpose. A partial list of keywords in Python 2.7 is and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try Python Operators Operators are special symbols, which represents computation. They are applied on operand(s), which can be values or variables. Same operator can behave differently on different data types. Operators when applied on operands form an expression. Python divides the operators in the following groups:  Arithmetic operators  Assignment operators  Comparison operators  Logical operators  Identity operators  Membership operators  Bitwise operators Mathematical/Arithmetic Operators Arithmetic operators are used with numeric values to perform common mathematical operations:
Python Programming Prof. K. Adisesha 10 Assignment Operators Assignment operators are used to assign values to variables: Comparison Operators Comparison operators are used to compare two values: Logical Operators  or: If any one of the operand is true, then the condition becomes true.  and: If both the operands are true, then the condition becomes true.  not: Reverses the state of operand/condition.
Python Programming Prof. K. Adisesha 11 Logical operators are used to combine conditional statements: Identity Operators Identity operators are used to compare the objects, not if they are equal, but if they are actually the same object, with the same memory location: Bitwise Operators Bitwise operators are used to compare (binary) numbers:
Python Programming Prof. K. Adisesha 12 Expression and Statements An expression is a combination of value(s) (i.e. constant), variable and operators. It generates a single value, which by itself is an expression. Example The expression is solved by Computer and gets it value. In the above example, it will be 4, and we say the expression is evaluated. Precedence of operator – Expression can be combined together to form large expressions but no matter how big the expression is, it always evaluate into a single value. Listed from high precedence to low precedence. While writing Python statements, keep the following points in mind: 1. Write one python statement per line (Physical Line). Although it is possible to write two statements in a line separated by semicolon.
Python Programming Prof. K. Adisesha 13 2. Comment starts with „#‟ outside a quoted string and ends at the end of a line. Comments are not part of statement. They may occur on the line by themselves or at the end of the statement. They are not executed by interpreter. 3. For a long statement, spanning multiple physical lines, we can use „/‟ at the end of physical line to logically join it with next physical line. Use of the „/‟ for joining lines is not required with expression consists of ( ), [ ], { } 4. When entering statement(s) in interactive mode, an extra blank line is treated as the end of the indented block. 5. Indentation is used to represent the embedded statement(s) in a compound/ Grouped statement. All statement(s) of a compound statement must be indented by a consistent no. of spaces (usually 4) 6. White space in the beginning of line is part of indentation, elsewhere it is not significant. Input and Output A Program needs to interact with end user to accomplish the desired task, this is done using Input-Output facility. Input means the data entered by the user (end user) of the program. While writing algorithm(s), getting input from user was represented by Take/Input. In python, we have raw-input() and input ( ) function available for Input. raw_input() Syntax of raw_input() is: raw_input ([prompt]) Optional If prompt is present, it is displayed on the monitor after which user can provide the data from keyboard. The function takes exactly what is typed from keyboard, convert it to string and then return it to the variable on LHS of „=‟. Example (in interactive mode) >>>x=raw_input („Enter your name: ‟) Enter your name: ABC x is a variable which will get the string (ABC), typed by user during the execution of program. Typing of data for the raw_input function is terminated by „enter‟ key. We can use raw_input() to enter numeric data also. In that case we typecast, i.e., change the datatype using function, the string data accepted from user to appropriate Numeric type. Example >>>y=int(raw_input(“enter your roll no”)) >>>enter your roll no. 5 will convert the accepted string i.e. 5 to integer before assigning it to “y”. input() Syntax for input() is: Input ([prompt]) Optional If prompt is present, it is displayed on monitor, after which the user can provide data from keyboard. Input takes whatever is typed from the keyboard and evaluates it. As the input provided is evaluated, it expects
Python Programming Prof. K. Adisesha 14 valid python expression. If the input provided is not correct then either syntax error or exception is raised by python. Example >>>x= input („enter data:‟) >>>Enter data: 2+1/2.0 Will supply 2.5 to x input ( ): is not so popular with python programmers as:  Exceptions are raised for non-well formed expressions.  Sometimes well-formed expression can wreak havoc. Print Statement Output is what program produces. In algorithm, it was represented by print. For output in Python, we use print. We have already seen its usage in previous examples. Let us learn more about it. print() Print evaluates the expression before printing it on the monitor. Print statement outputs an entire (complete) line and then goes to next line for subsequent output (s). To print more than one item on a single line, comma (,) may be used. Syntax: print expression/constant/variable Example >>> print “Hello” Hello >>> print 5.5 5.5 >>> print 4+6 10 >>> x=10 >>>print (x) 10
Python Programming Prof. K. Adisesha 15 Python Functions  A function is a named sequence of statement(s) that performs a computation. It contains line of code(s) that are executed sequentially from top to bottom by Python interpreter. They are the most important building blocks for any software in Python.  Functions can be categorized as belonging to i. Modules ii. Built in iii. User Defined Module A module is a file containing Python definitions (i.e. functions) and statements. Standard library of Python is extended as module(s) to a programmer. Definitions from the module can be used within the code of a program. To use these modules in the program, a programmer needs to import the module. Once you import a module, you can reference (use), any of its functions or variables in your code. There are many ways to import a module in your program, the one‟s which you should know are:  import  from Import It is simplest and most common way to use modules in our code. Its syntax is: >>>import modulename1 [, modulename2, ---------] Example >>> import math On execution of this statement, Python will (i) search for the file „math.py‟. (ii) Create space where modules definition & variable will be created, (iii) then execute the statements in the module. From Statement It is used to get a specific function in the code instead of the complete module file. If we know beforehand which function(s), we will be needing, then we may use from. For modules having large no. of functions, it is recommended to use from instead of import. Its syntax is >>> from modulename import functionname [, functionname…..] Example >>> from math import sqrt value = sqrt (25) Here, we are importing sqrt function only, instead of the complete math module. Now sqrt( ) function will be directly referenced to.
Python Programming Prof. K. Adisesha 16 Built in Function Built in functions are the function(s) that are built into Python and can be accessed by a programmer. These are always available and for using them, we don‟t have to import any module (file). Python has a small set of built-in functions as most of the functions have been partitioned to modules. This was done to keep core language precise. Some Built in Functions used in Python are as following: bool ( ), chr ( ), float ( ), int ( ), long (), str ( ), type ( ), id ( ), tuple ( ), min(), max(), abs() etc., User Defined Functions So far we have only seen the functions which come with Python either in some file (module) or in interpreter itself (built in), but it is also possible for programmer to write their own function(s). These functions can then be combined to form a module which can then be used in other programs by importing them. To define a function keyword def is used. After the keyword comes an identifier i.e. name of the function, followed by parenthesized list of parameters and the colon which ends up the line. Next follows the block of statement(s) that are the part of function. Block of statements A block is one or more lines of code, grouped together so that they are treated as one big sequence of statements while executing. In Python, statements in a block are written with indentation. Usually, a block begins when a line is indented (by four spaces) and all the statements of the block should be at same indent level. A block within block begins when its first statement is indented by four space, i.e., in total eight spaces. To end a block, write the next statement with the same indentation before the block started. Syntax of function is: def NAME ([PARAMETER1, PARAMETER2, …..]): #Square brackets include statement(s) #optional part of statement Example >>>def my_function(): print("Hello from a function") Calling a Function To call a function, use the function name followed by parenthesis: Example >>>def my_function(): print("Hello from a function") >>>my_function() Parameters Information can be passed to functions as parameter. Parameters are specified after the function name, inside the parentheses. You can add as many parameters as you want, just separate them with a comma.
Python Programming Prof. K. Adisesha 17 The following example has a function with one parameter (fname). When the function is called, we pass along a first name, which is used inside the function to print the full name: Example def my_function(fname): print(fname + " Users") my_function("Email") my_function("SMS") my_function("WhatsApp") C:UsersMy Name>python demo_function_param.py Email Users SMS Users WhatsApp Users Passing a List as a Parameter You can send any data types of parameter to a function (string, number, list, dictionary etc.), and it will be treated as the same data type inside the function. E.g. if you send a List as a parameter, it will still be a List when it reaches the function: >>> def my_function(food): for x in food: print(x) fruits = ["apple", "banana", "cherry"] my_function(fruits) >>>C:UsersMy Name>python demo_function_param3.py apple banana cherry
Python Programming Prof. K. Adisesha 18 Conditional and Looping Construct  Programming Constructs: A programming constructs is a statement in a program. There are 3 basic programming constructs.  Sequential Constructs  Selection Constructs  Iteration Constructs  Python Conditions: Python supports the usual logical conditions from mathematics:  Equals: a == b  Not Equals: a != b  Less than: a < b  Less than or equal to: a <= b  Greater than: a > b  Greater than or equal to: a >= b These conditions can be used in several ways, most commonly in "if statements" and loops. An "if statement" is written by using the if keyword.  Sequential Constructs: The program statements are executed one after another, in a sequence. Sequential constructs are:  Input Statement: This statement is used to input values into the variables from the input device.  Assignment Statement: This statement is used to store a value in a variable  Output Statement: This statement is used to display the values of variables on the standard output device.  Selection construct: It is also known as conditional construct. This structure helps the programmer to take appropriate decision. There are five kinds of selection constructs 1. Simple – if 2. if – else 3. elif 4. Nested – if 5. Multiple Selection 1. Simple - if: This structure helps to decide the execution of a particular statement based on a condition. This statement is also called as one-way branch. The general form of simple – if statement is: if x > 0: print “x is positive” Here, the test condition is tested which results in either a TRUE or FALSE value. If the result of the test condition is TRUE then the Statement 1 is executed. Otherwise, Statement 2 is executed.
Python Programming Prof. K. Adisesha 19 2. if – else statement: This structure helps to decide whether a set of statements should be executed or another set of statements should be executed. This statement is also called as two-way branch. The general form of if – else statement is: if (Test Condition A): Statement B else: Statement C Here, the test condition is tested. If the test-condition is TRUE, statement-B is executed. Otherwise, Statement C is executed. 3. elif statement: The elif keyword is pythons way of saying "if the previous conditions were not true, then try this condition". This structure helps the programmer to decide the execution of a statement from multiple statements based on a condition. There will be more than one condition to test. This statement is also called as multiple-way branch. The general form of if – else – if statement is: if (Test Condition 1): Statement 1; elif (Test Condition 2): Statement 2 ……… elif( test Condition N): Statement N Example for combining more than one condition: a = 200 b = 33 if b > a: print("b is greater than a") elif a == b: print("a and b are equal") else: print("a is greater than b") Here, Condition 1 is tested. If it is TRUE, Statement 1 is executed control transferred out of the structure. Otherwise, Condition 2 is tested. If it is TRUE, Statement 2 is executed control is transferred out of the structure and so on. If none of the condition is satisfied, a statement called default statement is executed. 4. Nested if statement: The statement within the if statement is another if statement is called Nested – if statement. The general form of Nested – if statement is: if (Test Condition 1): Statement 1 else: Statement 2; else: if (Test Condition 3): Statement 3; else: Statement 4;
Python Programming Prof. K. Adisesha 20 It is possible to have a condition within another condition. Such conditions are known as Nested Condition. Example if x==y: print x, “and “, y, “are equal” else: if x<y: print x, “ is less than”, y else: print x, “is greater than”, y Here a complete if… else statement belongs to else part of outer if statement.  Iteration Constructs We know that computers are often used to automate the repetitive tasks. One of the advantages of using computer to repeatedly perform an identical task is that it is done without making any mistake. Loops are used to repeatedly execute the same code in a program. Python provides two types of looping constructs: 1) While statement 2) For statement  While Constructs: This is a pre-tested loop structure where the control checks the condition at the beginning of the structure. The set of statements are executed repeatedly until the condition is true. When the condition becomes false, control is transferred out of the structure. The general form of while structure is: While ( Test Condition): Statement 1 Statement 2 …….. Statement N [else: # optional part of while STATEMENTs BLOCK 2] We can see that while is used with keyword while followed by Boolean condition followed by colon (:). What follows next is block of statement(s). The statement(s) in BLOCK 1 keeps on executing until condition in while remains True; once the condition becomes False and if the else clause is written in while, then else will get executed. Example: A loop to print nos. from 1 to 10 i=1 while (i <=10): print i, i = i+1 #could be written as i+=1 You can almost read the statement like English sentence. The first statement initialized the variable (controlling loop) and then while evaluates the condition, which is True so the block of statements written next will be executed.
Python Programming Prof. K. Adisesha 21 Last statement in the block ensures that, with every execution of loop, loop control variable moves near to the termination point. If this does not happen then the loop will keep on executing infinitely. As soon as i becomes 11, condition in while will evaluate to False and this will terminate the loop. Result produced by the loop will be: 1 2 3 4 5 6 7 8 9 10 As there is after print i all the values will be printed in the same line Example i=1 while (i <=10): print i, i+ =1 else: print “coming out of loop” # will bring print control to next printing line The output is printed as: >>>1 2 3 4 5 6 7 8 9 10 Coming out of loop  Nested loops Block of statement belonging to while can have another while statement, i.e. a while can contain another while. Example i=1 while i<=3: j=1 while j<=i: print j, # inner while loop j=j+1 print i=i+1 The output is printed as: >>>1 1 2 1 2 3  for Constructs: This structure is the fixed execution structure. This structure is usually used when we know in advance exactly how many times asset of statements is to be repeatedly executed repeatedly. This structure can be used as increment looping or decrement looping structure. The general form of for structure is as follows: Its Syntax is for i in range (initial value, limit, step): STATEMENT BLOCK 1 [else: # optional block STATEMENT BLOCK 2] Example # loop to print value 1 to 10 for i in range (1, 11, 1): print i,
Python Programming Prof. K. Adisesha 22 Execution of the loop will produce the result 1 2 3 4 5 6 7 8 9 10 Let’s understand the flow of execution of the statement: The statement introduces a function range ( ), its syntax is range(start, stop, [step]) # step is optional range( ) generates a list of values starting from start till stop-1. Step if given is added to the value generated, to get next value in the list. You have already learnt about it in built-in functions. Let us move back to the for statement: i is the variable, which keeps on getting a value generated by range ( ) function, and the block of statement (s) are worked on for each value of i. As the last value is assigned to i, the loop block is executed last time and control is returned to next statement. If else is specified in for statement, then next statement executed will be else. Now we can easily understand the result of for statement. range( ) generates a list from 1, 2, 3, 4, 5, …., 10 as the step mentioned is 1, I keeps on getting a value at a time, which is then printed on screen. Apart from range( ) i (loop control variable) can take values from string, list, dictionary, etc. Example for letter in „Python‟: print „Current Letter‟, letter else: print „Coming out of loop‟ On execution, will produce the following: Current Letter: P Current Letter: y Current Letter: t Current Letter: h Current Letter: o Current Letter: n Coming out of loop A for statement can contain another for statement or while statement. We know such statement form nested loop. Example # to print table starting from 1 to specified no. n=1 for i in range (1, n+1): j=1 print “Table to “, i, “is as follows” while j <6: print i, “*”, j “=”, i*j j = j+1 print Execution of the loop will produce the result Table to 1 is as follows 1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5
Python Programming Prof. K. Adisesha 23 Nesting a for loop within while loop can be seen in following example : Example i = 6 while i >= 0: for j in range (1, i): print j, print i=i-1 will result into 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1  Break Statement Break can be used to unconditionally jump out of the loop. It terminates the execution of the loop. Break can be used in while loop and for loop. Break is mostly required, when because of some external condition, we need to exit from a loop. Example for letter in „Python‟: if letter = = „h‟: break print letter Will result into P y t  Continue Statement This statement is used to tell Python to skip the rest of the statements of the current loop block and to move to next iteration, of the loop. Continue will return back the control to the loop. This can also be used with both while and for statement. Example for letter in “Python”: if letter == “h”: continue print letter Will result into P y t o n
Python Programming Prof. K. Adisesha 24 Strings  Introduction In python, consecutive sequence of characters is known as a string. An individual character in a string is accessed using a subscript (index).  String Literals String literals in python are surrounded by either single quotation marks, or double quotation marks. 'hello' is the same as "hello". You can display a string literal with the print() function: Example print("Hello") print('Hello')  Assign String to a Variable Assigning a string to a variable is done with the variable name followed by an equal sign and the string: Example a = "Hello" print(a) Output: Hello  Strings are Arrays Like many other popular programming languages, strings in Python are arrays of bytes representing unicode characters. However, Python does not have a character data type, a single character is simply a string with a length of 1. Square brackets can be used to access elements of the string. The subscript should always be an integer (positive or negative). A subscript starts from 0. Example a = "Hello, World!" print(a[1]) Output: e Substring. Get the characters from position 2 to position 5 (not included): Example b = "Hello, World!" print(b[2:5]) Output: llo  Strings Operations  strip() method: The strip() method removes any whitespace from the beginning or the end: Example a = " Hello, World! " print(a.strip()) # returns "Hello, World!" Output: Hello, World!
Python Programming Prof. K. Adisesha 25  len() method : The len() method returns the length of a string: Example a = "Hello, World!" print(len(a)) Output: 13  lower() method: The lower() method returns the string in lower case: Example a = "Hello, World!" print(a.lower()) Output: hello, world!  capitalize() method: The capitalize() method returns the exact copy of the string with the first letter in upper case Example a = "hello, world!" print(a. capitalize()) Output: Hello, world!  upper() method: The upper() method returns the string in upper case: Example a = "Hello, World!" print(a.upper()) Output: HELLO, WORLD!  replace() method: The replace() method replaces a string with another string: Example a = "Hello, World!" print(a.replace("H", "J")) Output: Jello, World!  split() method: The split() method splits the string into substrings if it finds instances of the separator: Example a = "Hello, World!" b = a.split(",") print(b) Output: ['Hello', ' World!']
Python Programming Prof. K. Adisesha 26  find(sub[,start[, end]]) method: The function is used to search the first occurrence of the substring in the given string. It returns the index at which the substring starts. It returns -1 if the substring does occur in the string. Example a = "Hello, World!" b = a. find('llo') Output: 2  isalnum() method: Returns True if the string contains only letters and digit. It returns False ,If the string contains any special character like _ , @,#,* etc. Example a = "Hello, World!" b = a. isalnum() Output: False  isalpha() method: Returns True if the string contains only letters. Otherwise, return False. Example a = "Hello, World!" b = a. isalalpha() Output: True  isdigit() method: Returns True if the string contains only numbers. Otherwise, it returns False. Example a = "Hello, World!" b = a. isigit() Output: False  String Format: As we we cannot combine strings and numbers like this: Example age = 36 txt = "My name is John, I am " + age print(txt) Output: File provides an error in line 2 txt = "My name is John, I am " + age TypeError: must be str, not int But we can combine strings and numbers by using the format() method! The format() method takes the passed arguments, formats them, and places them in the string where the placeholders {} are: Example Use the format() method to insert numbers into strings: age = 36 txt = "My name is John, and I am {}" print(txt.format(age)) Output: My name is John, and I am 36
Python Programming Prof. K. Adisesha 27 The format() method takes unlimited number of arguments, and are placed into the respective placeholders: Example quantity = 3 itemno = 567 price = 49.95 myorder = "I want {} pieces of item {} for Rs. {}." print(myorder.format(quantity, itemno, price)) Output: I want 3 pieces of item 567 for Rs. 49.95. You can use index numbers {0} to be sure the arguments are placed in the correct placeholders: Example quantity = 3 itemno = 567 price = 49.95 myorder = "I want to pay Rs. {2} for {0} pieces of item {1}." print(myorder.format(quantity, itemno, price)) Output: I want to pay Rs. 49.95 for 3 pieces of item 567  Strings are immutable Strings are immutable means that the contents of the string cannot be changed after it is created. Let us understand the concept of immutability with help of an example. Example str='honesty' str[2]='p' TypeError: 'str' object does not support item assignment. Python does not allow the programmer to change a character in a string. As shown in the above example, str has the value „honesty‟. An attempt to replace „n‟ in the string by ‟p‟ displays a TypeError. Traversing a string Traversing a string means accessing all the elements of the string one after the other by using the subscript. A string can be traversed using: for loop or while loop. String traversal using for loop String traversal using while loop A=‟Welcome‟ >>>for i in A: print i A=‟Welcome‟ >>>i=0 >>>while i<len(A) print A[i] i=i+1 Output: W e l c o m e Output: W e l c o m e
Python Programming Prof. K. Adisesha 28 Program to check whether the string is a palindrome or not. Def palin(): str=input("Enter the String") l=len(str) p=l-1 index=0 while (index<p): if(str[index]==str[p]): index=index+1 p=p-1 else: print "String is not a palidrome" break else: print "String is a Palidrome" Regular expressions and Pattern matching A regular expression is a sequence of letters and some special characters (also called meta characters). These special characters have symbolic meaning. The sequence formed by using meta characters and letters can be used to represent a group of patterns.  A RegEx, or Regular Expression, is a sequence of characters that forms a search pattern.  RegEx can be used to check if a string contains the specified search pattern. RegEx Module Python has a built-in package called re, which can be used to work with Regular Expressions. Import the re module: Example Search the string to see if it starts with "The" and ends with "Spain": import re txt = "The rain in Spain" x = re.search("^The.*Spain$", txt) Metacharacters Metacharacters are characters with a special meaning:
Python Programming Prof. K. Adisesha 29 Special Sequences A special sequence is a followed by one of the characters in the list below, and has a special meaning:
Python Programming Prof. K. Adisesha 30 Sets A set is a set of characters inside a pair of square brackets [] with a special meaning: RegEx Functions
Python Programming Prof. K. Adisesha 31 The re module offers a set of functions that allows us to search a string for a match: Function Description findall Returns a list containing all matches search Returns a Match object if there is a match anywhere in the string split Returns a list where the string has been split at each match sub Replaces one or many matches with a string The findall() Function The findall() function returns a list containing all matches. Example Print a list of all matches: import re str = "The rain in Spain" x = re.findall("ai", str) print(x) Output: ['ai', 'ai'] The list contains the matches in the order they are found. If no matches are found, an empty list is returned: The search() Function The search() function searches the string for a match, and returns a Match object if there is a match. If there is more than one match, only the first occurrence of the match will be returned: Example Search for the first white-space character in the string: import re str = "The rain in Spain" x = re.search("s", str) print("The first white-space character is located in position:", x.start())
Python Programming Prof. K. Adisesha 32 Output: The first white-space character is located in position: 3 If no matches are found, the value None is returned: The split() Function The split() function returns a list where the string has been split at each match: Example Split at each white-space character: import re str = "The rain in Spain" x = re.split("s", str) print(x) Output: ['The', 'rain', 'in', 'Spain'] You can control the number of occurrences by specifying the maxsplit parameter Match Object A Match Object is an object containing information about the search and the result. Note: If there is no match, the value None will be returned, instead of the Match Object. Example Do a search that will return a Match Object: import re str = "The rain in Spain" x = re.search("ai", str) print(x) #this will print an object Output: <_sre.SRE_Match object; span=(5, 7), match='ai'> The Match object has properties and methods used to retrieve information about the search, and the result: .span() returns a tuple containing the start-, and end positions of the match. .string returns the string passed into the function .group() returns the part of the string where there was a match

Python programming

  • 1.
    Python Programming Prof. K.Adisesha 1 Python programming Introduction A program is a sequence of instructions that specifies how to perform a Computation. Learning to write computer program is very much like learning any skill. First, we should understand the problems well and then try to solve it in a logical manner. We write a program in a language which computer can understand. Though there are many different programming languages such as BASIC, Pascal, C, C++, Java, Ruby, Python, etc. but we will study Python in this course. Guido Van Rossum created python when he was working at CWI (Centrum Wiskunde & Informatica) which is a National Research Institute for Mathematics and Computer Science in Netherlands. The language was released in I991. Python got its name from a BBC comedy series from seventies- “Monty Python's Flying Circus”. Python used to develop both Procedural approach and Object Oriented approach of programming. It is free to use software. If you find that you do not have python installed on your computer, then you can download it free from the following website: https://www.python.org/. It is used for:  Used on a server to create web applications.  Used alongside software to create workflows.  Used database systems. It can also read and modify files.  Used to handle big data and perform complex mathematics.  Used for rapid prototyping, or for production-ready software development. Some of the features, which make Python so popular, are as follows:  It is a general-purpose programming language, which can be used for both scientific and non- scientific programming.  It is a platform independent programming language.  It is a very simple high-level language with vast library of add-on modules.  It is excellent for beginners as the language is interpreted, hence gives immediate results.  The programs written in Python are easily readable and understandable.  It is suitable as an extension language for customizable applications to access and work with MySQL and MongoDB databases  It is easy to learn and use. The language is used by companies in real revenue generating products, such as:  In operations of Google, search engine, YouTube, etc.  Bit-Torrent peer to peer file sharing is written using Python  Intel, Cisco, HP, IBM, etc use Python for hardware testing.  Maya provides a Python scripting API  I–Robot uses Python to develop commercial Robot.  NASA and others use Python for their scientific programming task. Why Python?  Python works on different platforms (Windows, Mac, Linux, Raspberry Pi,).
  • 2.
    Python Programming Prof. K.Adisesha 2  Python has a simple syntax similar to the English language.  Python has syntax that allows developers to write programs with fewer lines than some other programming languages.  Python runs on an interpreter system, meaning that code can be executed as soon as it is written. This means that prototyping can be very quick.  Python can be treated in a procedural way, an object-orientated way or a functional way. Good to know  The most recent major version of Python is Python 3, However, Python 2, although not being updated with anything other than security updates, is still quite popular.  Python can be written in any text editors. It is possible to write Python in an Integrated Development Environment (IDLE), such as Thonny, Pycharm, Netbeans or Eclipse, which are particularly useful when managing larger collections of Python files. Python Syntax compared to other programming languages  Python was designed for readability, and has some similarities to the English language with influence from mathematics.  Python uses new lines to complete a command, as opposed to other programming languages, which often use semicolons or parentheses.  Python relies on indentation, using whitespace, to define scope; such as the scope of loops, functions and classes. Other programming languages often use curly-brackets for this purpose. First Step with Python To write and run Python program, we need to have Python interpreter installed in our computer. IDLE (GUI integrated) is the standard, most popular Python development environment. IDLE is an acronym of Integrated Development Environment. It lets edit, run, browse and debug Python Programs from a single interface. This environment makes it easy to write programs. Python shell can be used in two ways,  Interactive mode: Interactive Mode, as the name suggests, allows us to interact with OS  Script mode: script mode let us create and edit python source file. Python is an interpreted programming language, this means that as a developer you write Python (.py) files in a text editor and then put those files into the python interpreter to be executed. Interactive Mode For working in the interactive mode, we will start Python on our computer. When we start up the IDLE following window will appear:
  • 3.
    Python Programming Prof. K.Adisesha 3 This is a primary prompt “>>>” indicating that the interpreter is expecting a python command. There is secondary prompt also which is “…” indicating that interpreter is waiting for additional input to complete the current statement. Interpreter uses prompt to indicate that it is ready for instruction. Therefore, we can say, if there is prompt on screen, it means IDLE is working in interactive mode. We type Python expression / statement / command after the prompt and Python immediately responds with the output of it. Let us start with typing print “Hello world” after the prompt. >>>print “Hello world” Hello world what we get is Python's response. It is also possible to get a sequence of instructions executed through interpreter. It is also possible to get a sequence of instructions executed through interpreter. To leave the help mode and return to interactive mode, quit command can be used. ^D (Ctrl+D) or quit () is used to leave the interpreter. ^F6 will restart the shell. Script Mode In script mode, we type Python program in a file and then use the interpreter to execute the content from the file. Working in interactive mode is convenient for beginners and for testing small pieces of code, as we can test them immediately. However, for coding more than few lines, we should always save our code so that we may modify and reuse the code. Python, in interactive mode, is good enough to learn experiment or explore, but its only drawback is that we cannot save the statements for further use and we have to retype all the statements to re-run them. To create and run a Python script, we will use following steps in IDLE, if the script mode is not made available by default with IDLE environment. 1. File>Open OR File>New Window (for creating a new script file) 2. Write the Python code as function i.e. script 3. Save it (^S) 4. Execute it in interactive mode- by using RUN option (^F5)
  • 4.
    Python Programming Prof. K.Adisesha 4 Otherwise (if script mode is available) start from Step 2 If we write Example 1 in script mode, it will be written in the following way: Step 1: File> New Window Step 2: def test(): x=2 y=6 z = x+y print z Step 3: Use File > Save or File > Save As - for saving the file program files have names which end with .py Step 4: For execution, press ^F5, and we will go to Python prompt (in other window) >>> test() 8 Alternatively we can execute the script directly by choosing the RUN option. Variables and Types When we create a program, we often like to store values so that it can be used later. We use objects to capture data, which then can be manipulated by computer to provide information. By now, we know that object/ variable is a name, which refers to a value. Every object has: A. An Identity, - can be known using id (object) B. A Data type – can be checked using type (object) C. A value Let us study all these in detail A. Identity of the object: It is the object's address in memory and does not change once it has been created. B. Type (data type): It is a set of values, and the allowable operations on those values. It can be one of the following:
  • 5.
    Python Programming Prof. K.Adisesha 5 1. Number Number data type stores Numerical Values. This data type is immutable i.e. value of its object cannot be changed (we will talk about this aspect later). These are of three different types: I. Integer & Long II. Float/floating point III. Complex  Integer & Long: Integers are the whole numbers consisting of + or – sign with decimal digits like 100000, -99, 0, 17. While writing a large integer value, do not use commas to separate digits. Also, integers should not have leading zeros. When we are working with integers, we need not to worry about the size of integer as Python automatically handle a very big integer value. When we want a value to be treated as very long integer, value append L to the value. Such values are treated as long integers by python. >>> a = 10 >>> b = 5192L #example of supplying a very long value to a variable >>> c= 4298114 >>> type(c) # type ( ) is used to check data type of value <type 'int'> Integers contain Boolean Type, which is a unique data type, consisting of two constants, True & False. A Boolean True value is Non-Zero, Non-Null and Non-empty. Example >>> flag = True >>> type(flag) <type 'bool'>  Floating Point: Numbers with fractions or decimal point are called floating point numbers. A floating point number will consist of sign (+,-) sequence of decimals digits and a dot such as 0.0, -21.9, 0.98333328, 15.2963. These numbers can also be used to represent a number in engineering/ scientific notation. -2.0X 105 will be represented as -2.0e5 2.0X10-5 will be 2.0E-5 Example y= 12.36  Complex: Complex number in python is made up of two floating point values, one each for real and imaginary part. For accessing different parts of variable (object) x; we will use x.real and x.image. Imaginary part of the number is represented by „j‟ instead of „i‟, so 1+0j denotes zero imaginary part. Example >>> x = 1+0j >>> print x.real,x.imag 1.0 0.0 2. None This is special data type with single value. It is used to signify the absence of value/false in a situation. It is represented by “none”.
  • 6.
    Python Programming Prof. K.Adisesha 6 3. Sequence (Arrays) A sequence is an ordered collection of items, indexed by positive integers. It is combination of mutable and non-mutable data types. Three types of sequence data type available in Python are Strings, Lists & Tuples.  List is a collection, which is ordered and changeable. Allows duplicate members.  Tuple is a collection, which is ordered and unchangeable. Allows duplicate members.  Set is a collection, which is unordered and unindexed. No duplicate members.  Dictionary is a collection, which is unordered, changeable and indexed. No duplicate members. When choosing a collection type, it is useful to understand the properties of that type. Choosing the right type for a particular data set could mean retention of meaning, and, it could mean an increase in efficiency or security.  String: is an ordered sequence of letters/characters. They are enclosed in single quotes (‘…’) or double (“…”). The quotes are not part of string. They only tell the computer where the string constant begins and ends. They can have any character or sign, including space in them. These are immutable data types. We will learn about immutable data types while dealing with third aspect of object i.e. value of object. String literals in python are surrounded by either single quotation marks, or double quotation marks. 'hello' is the same as "hello". You can display a string literal with the print() function: Example >>> print("Hello") Hello >>> print('Hello') Hello It is possible to change one type of value/ variable to another type. It is known as type conversion or type casting. The conversion can be done explicitly (programmer specifies the conversions) or implicitly (Interpreter automatically converts the data type). Casting in python is therefore done using constructor functions:  int() - constructs an integer number from an integer literal, a float literal (by rounding down to the previous whole number), or a string literal (providing the string represents a whole number)  float() - constructs a float number from an integer literal, a float literal or a string literal (providing the string represents a float or an integer)  str() - constructs a string from a wide variety of data types, including strings, integer literals and float literals Example >>> a= 12.34 >>> b= int(a) >>> print b 12
  • 7.
    Python Programming Prof. K.Adisesha 7  Lists: A list is a collection, which is ordered and changeable. In Python, lists are written with square brackets. List is also a sequence of values of any type. Values in the list are called elements / items. These are mutable and indexed/ordered. Example >>>thislist = ["apple", "banana", "cherry"] >>>print(thislist) ‘apple’, ‘banana’, ‘cherry’ Example >>>thislist = ["apple", "banana", "cherry"] >>>print(thislist[1]) ‘banana’  Tuples: A tuple is a collection, which is ordered and unchangeable. In Python, tuples are written with round brackets (..). Tuples are a sequence of values of any type, and are indexed by integers. They are immutable. Example >>>thislist = ("apple", "banana", "cherry") >>>print(thislist) ‘apple’, ‘banana’, ‘cherry’ Example >>>thislist = ("apple", "banana", "cherry") >>>print(thislist[1]) ‘banana’ 4. Sets A set is a collection, which is unordered and unindexed values, of any type, with no duplicate entry. In Python, sets are written with curly brackets. Sets are immutable. Example Example >>>thislist = {"apple", "banana", "cherry"} >>>print(thislist) ‘apple’, ‘banana’, ‘cherry’ 5. Mapping This data type is unordered and mutable. Dictionaries fall under Mappings.  Dictionaries: Can store any number of python objects. What they store is a key – value pairs, which are accessed using key. Dictionary is enclosed in curly brackets. Example d = {1:'a', 2:'b', 3:'c'} C. Value of Object (variable) – to bind value to a variable, we use assignment operator (=). This is also known as building of a variable. Variable Names A variable can have a short name (like x and y) or a more descriptive name (age, car, name, total). Rules for Python variables:
  • 8.
    Python Programming Prof. K.Adisesha 8  A variable name must start with a letter or the underscore character  A variable name cannot start with a number  A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ )  Variable names are case-sensitive (age, Age and AGE are three different variables) It is a good practice to follow these identifier-naming conventions: 1. Variable name should be meaningful and short 2. Generally, they are written in lower case letters  Mutable and Immutable Variables A mutable variable is one whose value may change in place, whereas in an immutable variable change of value will not happen in place. Modifying an immutable variable will rebuild the same variable. Example >>>x=5 Will create a value 5 referenced by x >>>y=x This statement will make y refer to 5 of x >>> x=x+y As x being integer (immutable type) has been rebuild. In the statement, expression on RHS will result into value 10 and when this is assigned to LHS (x), x will rebuild to 10. Programmers choose the names of the variable that are meaningful. A variable name: Python Comments: As the program gets bigger, it becomes difficult to read it, and to make out what it is doing by just looking at it. So it is good to add notes to the code, while writing it.  Comments can be used to explain Python code.  Comments can be used to make the code more readable.  Comments can be used to prevent execution when testing code. Creating a Single Line Comment Comments starts with a # and Python will ignore them: Example #This is a comment print("Hello, World!") Creating a Multi-Line Comments Since Python will ignore string literals that are not assigned to a variable, you can add a multiline string (triple quotes) in your code, and place you comment inside it: """ This is a comment written in more than just one line """ print("Hello, World!")
  • 9.
    Python Programming Prof. K.Adisesha 9 Keywords They are the words used by Python interpreter to recognize the structure of program. As these words have specific meaning for interpreter, they cannot be used for any other purpose. A partial list of keywords in Python 2.7 is and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try Python Operators Operators are special symbols, which represents computation. They are applied on operand(s), which can be values or variables. Same operator can behave differently on different data types. Operators when applied on operands form an expression. Python divides the operators in the following groups:  Arithmetic operators  Assignment operators  Comparison operators  Logical operators  Identity operators  Membership operators  Bitwise operators Mathematical/Arithmetic Operators Arithmetic operators are used with numeric values to perform common mathematical operations:
  • 10.
    Python Programming Prof. K.Adisesha 10 Assignment Operators Assignment operators are used to assign values to variables: Comparison Operators Comparison operators are used to compare two values: Logical Operators  or: If any one of the operand is true, then the condition becomes true.  and: If both the operands are true, then the condition becomes true.  not: Reverses the state of operand/condition.
  • 11.
    Python Programming Prof. K.Adisesha 11 Logical operators are used to combine conditional statements: Identity Operators Identity operators are used to compare the objects, not if they are equal, but if they are actually the same object, with the same memory location: Bitwise Operators Bitwise operators are used to compare (binary) numbers:
  • 12.
    Python Programming Prof. K.Adisesha 12 Expression and Statements An expression is a combination of value(s) (i.e. constant), variable and operators. It generates a single value, which by itself is an expression. Example The expression is solved by Computer and gets it value. In the above example, it will be 4, and we say the expression is evaluated. Precedence of operator – Expression can be combined together to form large expressions but no matter how big the expression is, it always evaluate into a single value. Listed from high precedence to low precedence. While writing Python statements, keep the following points in mind: 1. Write one python statement per line (Physical Line). Although it is possible to write two statements in a line separated by semicolon.
  • 13.
    Python Programming Prof. K.Adisesha 13 2. Comment starts with „#‟ outside a quoted string and ends at the end of a line. Comments are not part of statement. They may occur on the line by themselves or at the end of the statement. They are not executed by interpreter. 3. For a long statement, spanning multiple physical lines, we can use „/‟ at the end of physical line to logically join it with next physical line. Use of the „/‟ for joining lines is not required with expression consists of ( ), [ ], { } 4. When entering statement(s) in interactive mode, an extra blank line is treated as the end of the indented block. 5. Indentation is used to represent the embedded statement(s) in a compound/ Grouped statement. All statement(s) of a compound statement must be indented by a consistent no. of spaces (usually 4) 6. White space in the beginning of line is part of indentation, elsewhere it is not significant. Input and Output A Program needs to interact with end user to accomplish the desired task, this is done using Input-Output facility. Input means the data entered by the user (end user) of the program. While writing algorithm(s), getting input from user was represented by Take/Input. In python, we have raw-input() and input ( ) function available for Input. raw_input() Syntax of raw_input() is: raw_input ([prompt]) Optional If prompt is present, it is displayed on the monitor after which user can provide the data from keyboard. The function takes exactly what is typed from keyboard, convert it to string and then return it to the variable on LHS of „=‟. Example (in interactive mode) >>>x=raw_input („Enter your name: ‟) Enter your name: ABC x is a variable which will get the string (ABC), typed by user during the execution of program. Typing of data for the raw_input function is terminated by „enter‟ key. We can use raw_input() to enter numeric data also. In that case we typecast, i.e., change the datatype using function, the string data accepted from user to appropriate Numeric type. Example >>>y=int(raw_input(“enter your roll no”)) >>>enter your roll no. 5 will convert the accepted string i.e. 5 to integer before assigning it to “y”. input() Syntax for input() is: Input ([prompt]) Optional If prompt is present, it is displayed on monitor, after which the user can provide data from keyboard. Input takes whatever is typed from the keyboard and evaluates it. As the input provided is evaluated, it expects
  • 14.
    Python Programming Prof. K.Adisesha 14 valid python expression. If the input provided is not correct then either syntax error or exception is raised by python. Example >>>x= input („enter data:‟) >>>Enter data: 2+1/2.0 Will supply 2.5 to x input ( ): is not so popular with python programmers as:  Exceptions are raised for non-well formed expressions.  Sometimes well-formed expression can wreak havoc. Print Statement Output is what program produces. In algorithm, it was represented by print. For output in Python, we use print. We have already seen its usage in previous examples. Let us learn more about it. print() Print evaluates the expression before printing it on the monitor. Print statement outputs an entire (complete) line and then goes to next line for subsequent output (s). To print more than one item on a single line, comma (,) may be used. Syntax: print expression/constant/variable Example >>> print “Hello” Hello >>> print 5.5 5.5 >>> print 4+6 10 >>> x=10 >>>print (x) 10
  • 15.
    Python Programming Prof. K.Adisesha 15 Python Functions  A function is a named sequence of statement(s) that performs a computation. It contains line of code(s) that are executed sequentially from top to bottom by Python interpreter. They are the most important building blocks for any software in Python.  Functions can be categorized as belonging to i. Modules ii. Built in iii. User Defined Module A module is a file containing Python definitions (i.e. functions) and statements. Standard library of Python is extended as module(s) to a programmer. Definitions from the module can be used within the code of a program. To use these modules in the program, a programmer needs to import the module. Once you import a module, you can reference (use), any of its functions or variables in your code. There are many ways to import a module in your program, the one‟s which you should know are:  import  from Import It is simplest and most common way to use modules in our code. Its syntax is: >>>import modulename1 [, modulename2, ---------] Example >>> import math On execution of this statement, Python will (i) search for the file „math.py‟. (ii) Create space where modules definition & variable will be created, (iii) then execute the statements in the module. From Statement It is used to get a specific function in the code instead of the complete module file. If we know beforehand which function(s), we will be needing, then we may use from. For modules having large no. of functions, it is recommended to use from instead of import. Its syntax is >>> from modulename import functionname [, functionname…..] Example >>> from math import sqrt value = sqrt (25) Here, we are importing sqrt function only, instead of the complete math module. Now sqrt( ) function will be directly referenced to.
  • 16.
    Python Programming Prof. K.Adisesha 16 Built in Function Built in functions are the function(s) that are built into Python and can be accessed by a programmer. These are always available and for using them, we don‟t have to import any module (file). Python has a small set of built-in functions as most of the functions have been partitioned to modules. This was done to keep core language precise. Some Built in Functions used in Python are as following: bool ( ), chr ( ), float ( ), int ( ), long (), str ( ), type ( ), id ( ), tuple ( ), min(), max(), abs() etc., User Defined Functions So far we have only seen the functions which come with Python either in some file (module) or in interpreter itself (built in), but it is also possible for programmer to write their own function(s). These functions can then be combined to form a module which can then be used in other programs by importing them. To define a function keyword def is used. After the keyword comes an identifier i.e. name of the function, followed by parenthesized list of parameters and the colon which ends up the line. Next follows the block of statement(s) that are the part of function. Block of statements A block is one or more lines of code, grouped together so that they are treated as one big sequence of statements while executing. In Python, statements in a block are written with indentation. Usually, a block begins when a line is indented (by four spaces) and all the statements of the block should be at same indent level. A block within block begins when its first statement is indented by four space, i.e., in total eight spaces. To end a block, write the next statement with the same indentation before the block started. Syntax of function is: def NAME ([PARAMETER1, PARAMETER2, …..]): #Square brackets include statement(s) #optional part of statement Example >>>def my_function(): print("Hello from a function") Calling a Function To call a function, use the function name followed by parenthesis: Example >>>def my_function(): print("Hello from a function") >>>my_function() Parameters Information can be passed to functions as parameter. Parameters are specified after the function name, inside the parentheses. You can add as many parameters as you want, just separate them with a comma.
  • 17.
    Python Programming Prof. K.Adisesha 17 The following example has a function with one parameter (fname). When the function is called, we pass along a first name, which is used inside the function to print the full name: Example def my_function(fname): print(fname + " Users") my_function("Email") my_function("SMS") my_function("WhatsApp") C:UsersMy Name>python demo_function_param.py Email Users SMS Users WhatsApp Users Passing a List as a Parameter You can send any data types of parameter to a function (string, number, list, dictionary etc.), and it will be treated as the same data type inside the function. E.g. if you send a List as a parameter, it will still be a List when it reaches the function: >>> def my_function(food): for x in food: print(x) fruits = ["apple", "banana", "cherry"] my_function(fruits) >>>C:UsersMy Name>python demo_function_param3.py apple banana cherry
  • 18.
    Python Programming Prof. K.Adisesha 18 Conditional and Looping Construct  Programming Constructs: A programming constructs is a statement in a program. There are 3 basic programming constructs.  Sequential Constructs  Selection Constructs  Iteration Constructs  Python Conditions: Python supports the usual logical conditions from mathematics:  Equals: a == b  Not Equals: a != b  Less than: a < b  Less than or equal to: a <= b  Greater than: a > b  Greater than or equal to: a >= b These conditions can be used in several ways, most commonly in "if statements" and loops. An "if statement" is written by using the if keyword.  Sequential Constructs: The program statements are executed one after another, in a sequence. Sequential constructs are:  Input Statement: This statement is used to input values into the variables from the input device.  Assignment Statement: This statement is used to store a value in a variable  Output Statement: This statement is used to display the values of variables on the standard output device.  Selection construct: It is also known as conditional construct. This structure helps the programmer to take appropriate decision. There are five kinds of selection constructs 1. Simple – if 2. if – else 3. elif 4. Nested – if 5. Multiple Selection 1. Simple - if: This structure helps to decide the execution of a particular statement based on a condition. This statement is also called as one-way branch. The general form of simple – if statement is: if x > 0: print “x is positive” Here, the test condition is tested which results in either a TRUE or FALSE value. If the result of the test condition is TRUE then the Statement 1 is executed. Otherwise, Statement 2 is executed.
  • 19.
    Python Programming Prof. K.Adisesha 19 2. if – else statement: This structure helps to decide whether a set of statements should be executed or another set of statements should be executed. This statement is also called as two-way branch. The general form of if – else statement is: if (Test Condition A): Statement B else: Statement C Here, the test condition is tested. If the test-condition is TRUE, statement-B is executed. Otherwise, Statement C is executed. 3. elif statement: The elif keyword is pythons way of saying "if the previous conditions were not true, then try this condition". This structure helps the programmer to decide the execution of a statement from multiple statements based on a condition. There will be more than one condition to test. This statement is also called as multiple-way branch. The general form of if – else – if statement is: if (Test Condition 1): Statement 1; elif (Test Condition 2): Statement 2 ……… elif( test Condition N): Statement N Example for combining more than one condition: a = 200 b = 33 if b > a: print("b is greater than a") elif a == b: print("a and b are equal") else: print("a is greater than b") Here, Condition 1 is tested. If it is TRUE, Statement 1 is executed control transferred out of the structure. Otherwise, Condition 2 is tested. If it is TRUE, Statement 2 is executed control is transferred out of the structure and so on. If none of the condition is satisfied, a statement called default statement is executed. 4. Nested if statement: The statement within the if statement is another if statement is called Nested – if statement. The general form of Nested – if statement is: if (Test Condition 1): Statement 1 else: Statement 2; else: if (Test Condition 3): Statement 3; else: Statement 4;
  • 20.
    Python Programming Prof. K.Adisesha 20 It is possible to have a condition within another condition. Such conditions are known as Nested Condition. Example if x==y: print x, “and “, y, “are equal” else: if x<y: print x, “ is less than”, y else: print x, “is greater than”, y Here a complete if… else statement belongs to else part of outer if statement.  Iteration Constructs We know that computers are often used to automate the repetitive tasks. One of the advantages of using computer to repeatedly perform an identical task is that it is done without making any mistake. Loops are used to repeatedly execute the same code in a program. Python provides two types of looping constructs: 1) While statement 2) For statement  While Constructs: This is a pre-tested loop structure where the control checks the condition at the beginning of the structure. The set of statements are executed repeatedly until the condition is true. When the condition becomes false, control is transferred out of the structure. The general form of while structure is: While ( Test Condition): Statement 1 Statement 2 …….. Statement N [else: # optional part of while STATEMENTs BLOCK 2] We can see that while is used with keyword while followed by Boolean condition followed by colon (:). What follows next is block of statement(s). The statement(s) in BLOCK 1 keeps on executing until condition in while remains True; once the condition becomes False and if the else clause is written in while, then else will get executed. Example: A loop to print nos. from 1 to 10 i=1 while (i <=10): print i, i = i+1 #could be written as i+=1 You can almost read the statement like English sentence. The first statement initialized the variable (controlling loop) and then while evaluates the condition, which is True so the block of statements written next will be executed.
  • 21.
    Python Programming Prof. K.Adisesha 21 Last statement in the block ensures that, with every execution of loop, loop control variable moves near to the termination point. If this does not happen then the loop will keep on executing infinitely. As soon as i becomes 11, condition in while will evaluate to False and this will terminate the loop. Result produced by the loop will be: 1 2 3 4 5 6 7 8 9 10 As there is after print i all the values will be printed in the same line Example i=1 while (i <=10): print i, i+ =1 else: print “coming out of loop” # will bring print control to next printing line The output is printed as: >>>1 2 3 4 5 6 7 8 9 10 Coming out of loop  Nested loops Block of statement belonging to while can have another while statement, i.e. a while can contain another while. Example i=1 while i<=3: j=1 while j<=i: print j, # inner while loop j=j+1 print i=i+1 The output is printed as: >>>1 1 2 1 2 3  for Constructs: This structure is the fixed execution structure. This structure is usually used when we know in advance exactly how many times asset of statements is to be repeatedly executed repeatedly. This structure can be used as increment looping or decrement looping structure. The general form of for structure is as follows: Its Syntax is for i in range (initial value, limit, step): STATEMENT BLOCK 1 [else: # optional block STATEMENT BLOCK 2] Example # loop to print value 1 to 10 for i in range (1, 11, 1): print i,
  • 22.
    Python Programming Prof. K.Adisesha 22 Execution of the loop will produce the result 1 2 3 4 5 6 7 8 9 10 Let’s understand the flow of execution of the statement: The statement introduces a function range ( ), its syntax is range(start, stop, [step]) # step is optional range( ) generates a list of values starting from start till stop-1. Step if given is added to the value generated, to get next value in the list. You have already learnt about it in built-in functions. Let us move back to the for statement: i is the variable, which keeps on getting a value generated by range ( ) function, and the block of statement (s) are worked on for each value of i. As the last value is assigned to i, the loop block is executed last time and control is returned to next statement. If else is specified in for statement, then next statement executed will be else. Now we can easily understand the result of for statement. range( ) generates a list from 1, 2, 3, 4, 5, …., 10 as the step mentioned is 1, I keeps on getting a value at a time, which is then printed on screen. Apart from range( ) i (loop control variable) can take values from string, list, dictionary, etc. Example for letter in „Python‟: print „Current Letter‟, letter else: print „Coming out of loop‟ On execution, will produce the following: Current Letter: P Current Letter: y Current Letter: t Current Letter: h Current Letter: o Current Letter: n Coming out of loop A for statement can contain another for statement or while statement. We know such statement form nested loop. Example # to print table starting from 1 to specified no. n=1 for i in range (1, n+1): j=1 print “Table to “, i, “is as follows” while j <6: print i, “*”, j “=”, i*j j = j+1 print Execution of the loop will produce the result Table to 1 is as follows 1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5
  • 23.
    Python Programming Prof. K.Adisesha 23 Nesting a for loop within while loop can be seen in following example : Example i = 6 while i >= 0: for j in range (1, i): print j, print i=i-1 will result into 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1  Break Statement Break can be used to unconditionally jump out of the loop. It terminates the execution of the loop. Break can be used in while loop and for loop. Break is mostly required, when because of some external condition, we need to exit from a loop. Example for letter in „Python‟: if letter = = „h‟: break print letter Will result into P y t  Continue Statement This statement is used to tell Python to skip the rest of the statements of the current loop block and to move to next iteration, of the loop. Continue will return back the control to the loop. This can also be used with both while and for statement. Example for letter in “Python”: if letter == “h”: continue print letter Will result into P y t o n
  • 24.
    Python Programming Prof. K.Adisesha 24 Strings  Introduction In python, consecutive sequence of characters is known as a string. An individual character in a string is accessed using a subscript (index).  String Literals String literals in python are surrounded by either single quotation marks, or double quotation marks. 'hello' is the same as "hello". You can display a string literal with the print() function: Example print("Hello") print('Hello')  Assign String to a Variable Assigning a string to a variable is done with the variable name followed by an equal sign and the string: Example a = "Hello" print(a) Output: Hello  Strings are Arrays Like many other popular programming languages, strings in Python are arrays of bytes representing unicode characters. However, Python does not have a character data type, a single character is simply a string with a length of 1. Square brackets can be used to access elements of the string. The subscript should always be an integer (positive or negative). A subscript starts from 0. Example a = "Hello, World!" print(a[1]) Output: e Substring. Get the characters from position 2 to position 5 (not included): Example b = "Hello, World!" print(b[2:5]) Output: llo  Strings Operations  strip() method: The strip() method removes any whitespace from the beginning or the end: Example a = " Hello, World! " print(a.strip()) # returns "Hello, World!" Output: Hello, World!
  • 25.
    Python Programming Prof. K.Adisesha 25  len() method : The len() method returns the length of a string: Example a = "Hello, World!" print(len(a)) Output: 13  lower() method: The lower() method returns the string in lower case: Example a = "Hello, World!" print(a.lower()) Output: hello, world!  capitalize() method: The capitalize() method returns the exact copy of the string with the first letter in upper case Example a = "hello, world!" print(a. capitalize()) Output: Hello, world!  upper() method: The upper() method returns the string in upper case: Example a = "Hello, World!" print(a.upper()) Output: HELLO, WORLD!  replace() method: The replace() method replaces a string with another string: Example a = "Hello, World!" print(a.replace("H", "J")) Output: Jello, World!  split() method: The split() method splits the string into substrings if it finds instances of the separator: Example a = "Hello, World!" b = a.split(",") print(b) Output: ['Hello', ' World!']
  • 26.
    Python Programming Prof. K.Adisesha 26  find(sub[,start[, end]]) method: The function is used to search the first occurrence of the substring in the given string. It returns the index at which the substring starts. It returns -1 if the substring does occur in the string. Example a = "Hello, World!" b = a. find('llo') Output: 2  isalnum() method: Returns True if the string contains only letters and digit. It returns False ,If the string contains any special character like _ , @,#,* etc. Example a = "Hello, World!" b = a. isalnum() Output: False  isalpha() method: Returns True if the string contains only letters. Otherwise, return False. Example a = "Hello, World!" b = a. isalalpha() Output: True  isdigit() method: Returns True if the string contains only numbers. Otherwise, it returns False. Example a = "Hello, World!" b = a. isigit() Output: False  String Format: As we we cannot combine strings and numbers like this: Example age = 36 txt = "My name is John, I am " + age print(txt) Output: File provides an error in line 2 txt = "My name is John, I am " + age TypeError: must be str, not int But we can combine strings and numbers by using the format() method! The format() method takes the passed arguments, formats them, and places them in the string where the placeholders {} are: Example Use the format() method to insert numbers into strings: age = 36 txt = "My name is John, and I am {}" print(txt.format(age)) Output: My name is John, and I am 36
  • 27.
    Python Programming Prof. K.Adisesha 27 The format() method takes unlimited number of arguments, and are placed into the respective placeholders: Example quantity = 3 itemno = 567 price = 49.95 myorder = "I want {} pieces of item {} for Rs. {}." print(myorder.format(quantity, itemno, price)) Output: I want 3 pieces of item 567 for Rs. 49.95. You can use index numbers {0} to be sure the arguments are placed in the correct placeholders: Example quantity = 3 itemno = 567 price = 49.95 myorder = "I want to pay Rs. {2} for {0} pieces of item {1}." print(myorder.format(quantity, itemno, price)) Output: I want to pay Rs. 49.95 for 3 pieces of item 567  Strings are immutable Strings are immutable means that the contents of the string cannot be changed after it is created. Let us understand the concept of immutability with help of an example. Example str='honesty' str[2]='p' TypeError: 'str' object does not support item assignment. Python does not allow the programmer to change a character in a string. As shown in the above example, str has the value „honesty‟. An attempt to replace „n‟ in the string by ‟p‟ displays a TypeError. Traversing a string Traversing a string means accessing all the elements of the string one after the other by using the subscript. A string can be traversed using: for loop or while loop. String traversal using for loop String traversal using while loop A=‟Welcome‟ >>>for i in A: print i A=‟Welcome‟ >>>i=0 >>>while i<len(A) print A[i] i=i+1 Output: W e l c o m e Output: W e l c o m e
  • 28.
    Python Programming Prof. K.Adisesha 28 Program to check whether the string is a palindrome or not. Def palin(): str=input("Enter the String") l=len(str) p=l-1 index=0 while (index<p): if(str[index]==str[p]): index=index+1 p=p-1 else: print "String is not a palidrome" break else: print "String is a Palidrome" Regular expressions and Pattern matching A regular expression is a sequence of letters and some special characters (also called meta characters). These special characters have symbolic meaning. The sequence formed by using meta characters and letters can be used to represent a group of patterns.  A RegEx, or Regular Expression, is a sequence of characters that forms a search pattern.  RegEx can be used to check if a string contains the specified search pattern. RegEx Module Python has a built-in package called re, which can be used to work with Regular Expressions. Import the re module: Example Search the string to see if it starts with "The" and ends with "Spain": import re txt = "The rain in Spain" x = re.search("^The.*Spain$", txt) Metacharacters Metacharacters are characters with a special meaning:
  • 29.
    Python Programming Prof. K.Adisesha 29 Special Sequences A special sequence is a followed by one of the characters in the list below, and has a special meaning:
  • 30.
    Python Programming Prof. K.Adisesha 30 Sets A set is a set of characters inside a pair of square brackets [] with a special meaning: RegEx Functions
  • 31.
    Python Programming Prof. K.Adisesha 31 The re module offers a set of functions that allows us to search a string for a match: Function Description findall Returns a list containing all matches search Returns a Match object if there is a match anywhere in the string split Returns a list where the string has been split at each match sub Replaces one or many matches with a string The findall() Function The findall() function returns a list containing all matches. Example Print a list of all matches: import re str = "The rain in Spain" x = re.findall("ai", str) print(x) Output: ['ai', 'ai'] The list contains the matches in the order they are found. If no matches are found, an empty list is returned: The search() Function The search() function searches the string for a match, and returns a Match object if there is a match. If there is more than one match, only the first occurrence of the match will be returned: Example Search for the first white-space character in the string: import re str = "The rain in Spain" x = re.search("s", str) print("The first white-space character is located in position:", x.start())
  • 32.
    Python Programming Prof. K.Adisesha 32 Output: The first white-space character is located in position: 3 If no matches are found, the value None is returned: The split() Function The split() function returns a list where the string has been split at each match: Example Split at each white-space character: import re str = "The rain in Spain" x = re.split("s", str) print(x) Output: ['The', 'rain', 'in', 'Spain'] You can control the number of occurrences by specifying the maxsplit parameter Match Object A Match Object is an object containing information about the search and the result. Note: If there is no match, the value None will be returned, instead of the Match Object. Example Do a search that will return a Match Object: import re str = "The rain in Spain" x = re.search("ai", str) print(x) #this will print an object Output: <_sre.SRE_Match object; span=(5, 7), match='ai'> The Match object has properties and methods used to retrieve information about the search, and the result: .span() returns a tuple containing the start-, and end positions of the match. .string returns the string passed into the function .group() returns the part of the string where there was a match