CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
1
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
2
Booleans & Comparisons
In Python, there are two Boolean values: True and False. They can be created by comparing values, for instances by using the equal operator ==.
>>> value = True
>>> value True
>>> 5 == 15
False
>>> "Hello" == "Hello" True
>>> "Hi" == "hi"
False
Another comparison operator, the not equal operator (!=), evaluates to True if the items being compares aren’t equal, and False if they are.
>>> 1 != 1
False
>>> "cat" != "mat" True
Compares both Numbers as well as Strings.
Python also has operators that determine whether the given number (integer or float) is greater than or smaller than another. These are < and > respectively.
Also we have, >= Greater than or Equal & <= Smaller than or Equal. Except they return True when comparing equal numbers.
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
3
Greater than and smaller than operators are also used to compare Strings lexicographically.
>>> 9 > 4
True
>>> 8 < 8
False
>>> 4 <= 7
True
>>> 8 >= 8.0
True
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
4
if Statements
You can use if statements to run code if a certain condition holds.
If an expression evaluates to True, some statements are carried out. Otherwise, they aren’t carried out.
if expression: statements
Python uses indentation (white space at the beginning of a line) to delimit blocks of code. Other languages, such as C, use curly braces to accomplish this, but in Python indentation is mandatory; programs won’t work without it.
Notice the colon at the end of the expression in the if statement.
As the program contains multiple lines of code, you should create it as a separate file and run it.
To perform more complex checks, if statements can be nested, one inside the other.
Where inner if statement will be a part of outer if statement. This is used to see whether multiple conditions are satisfied.
no = 24
if no > 18:
print("Greater than 18") if no <= 50:
print("Between 18 & 50")
Output:
Greater than 18
Between 18 & 50
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
5
else Statements
An else statement follows an if statement & contains code that is called when the if statement evaluates to False.
X = 4
if x == 8:
print(“Yes”) else:
print(“No”)
Output:
>>>
No
>>>
You can chain if and else statements to determine which option in a series of possibilities is true.
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
6
elif Statements
The elif (short of else if) statement is a shortcut to use when chaining if and else statements. A series of if elif statements can have a final else block, which is called if none of the if or elif expression is True.
num = 24
if num == 5:
print("Number is 5") elif num == 11:
print("Number is 11") elif num == 24:
print("Number is 24") else:
print("Number isn't 5,11 or 24")
Output:
>>>
Number is 24
>>>
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
7
Boolean Logic
Python’s Boolean operators are and, or and not.
The and operator takes two arguments, and evaluates as True if, and only if, both of its arguments are True. Otherwise, it evaluates to False.
>>> 1 True | == | 1 | and | 2 | == | 2 |
>>> 1 | == | 1 | and | 2 | == | 3 |
False >>> 1 | != | 1 | and | 2 | == | 2 |
False | | | | | | |
>>> 4 < 2 and 2 > 6
False
Python uses words for its Boolean operators, whereas most other languages use symbols such as &&, || an !.
Similarly, Boolean or operator takes two arguments. It evaluates to True if either (or both) of its arguments are True, and False if both arguments are False.
The result of not True is False, and not False goes to True.
>>> not 1 == 1 False
>>> not 7 > 9 True
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
8
Operator Precedence
Operator Precedence is a very important concept in programming. It is an extension of the mathematical idea of order of operation.
(multiplication being performed before addition etc.) to include other operators, such as those in Boolean logic.
The below code shows that == has a higher precedence than or.
>>> False == False or True True
>>> False == (False or True) False
>>> (False == False) or True True
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
9
List of Python’s operators, from highest precedence to lowest.
** Exponentiation (raise to the power)
~ + - Complement, unary plus and minus
(method names for the last two are +@ and -@)
* / % // | | | | | Multiply, divide, modulo and floor division |
+ - | | | | | Addition and Subtraction |
>> << | | | | | Right and Left bitwise shift |
& | | | | | Bitwise ‘AND’ |
^ | | | | | | Bitwise exclusive ‘OR’ and regular ‘OR’ |
<= == => | | | | | Comparison operators |
< > == != | | | | | Equality Operators |
= %= /= //= | -= | += | *= | **= | Assignment Operators |
is is not | | | | | Identity operators |
in not in | | | | | Membership Operators |
not or and | | | | | Logical operators |
Operator | Description
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
10
while Loop
An if statement is run once if its condition evaluates to True, and never if it evaluates to False.
A while statement is similar, except that it can be run more than once. The statements inside it are repeatedly executed, as long as the condition holds. Once it evaluates to False, the next section of code is executed.
Program:
i = 1
while i <= 5:
print(i) i+=1
print("Finished !")
Output:
1
2
3
4
5
Finished !
The infinite loop is a special kind of while loop, it never stops running. Its condition always remains True.
while 1 == 1:
print(“In the loop”)
This program would indefinitely print “In the loop”.
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
11
You can stop the program’s execution by using the Ctrl-C shortcut or by closing the program.
To end a while loop prematurely, the break statement can be used.
When encountered inside a loop, the break statement causes the loop to finish immediately.
Program:
i = 0
while 1 == 1: print(i)
i+=1
if i >= 5:
print("Breaking") break
print("Finished")
Output:
0
1
2
3
4
Breaking Finished
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
12
Another statement that can be used within loops is continue.
Unlike break, continue jumps back to the top of the loop, rather than stopping it.
Program:
i=0
while True: i+=1
if i == 2:
print("Skipping 2") continue
if i == 5:
print("Breaking") break
print(i) print("Finished")
Output:
1
Skipping 2
3
4
Breaking Finished
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
The first list item’s index is 0, rather than 1, as might be expected. An empty list can be created with an empty pair of square brackets.
13
Lists:
Lists are another type of object in Python. They are used to store an indexed list of items.
A list is created using square brackets with commas separating items.
The certain item in the list can be accessed by using its index in square brackets.
Program:
words = ["I","Love","Python"] print(words[0]) print(words[1]) print(words[2])
Output:
I
Love Python
empty_list = []
It is perfectly valid to write comma after last item of the list, and it is encouraged in some cases.
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
Lists of lists are often used to represent 2D grids, as Python lacks the multidimensional arrays that would be used for this in other languages.
14
Typically, a list will contain items of a single item type, but it is also possible to include several different types.
Lists can also be nested within other lists. Program:
number = 33
things = ["String",0,[11,22,number],3.14] print(things[0])
print(things[1]) print(things[2]) print(things[2][2])
Output:
String 0
[11, 22, 33]
33
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
15
Indexing out of the bounds of possible list values causes an IndexError.
Some types, such as strings, can be indexed like lists. Indexing strings behaves as though you are indexing a list containing each character in the string.
For other types, such as integers, indexing them isn’t possible, and it causes a
TypeError.
Program:
str = “Hello World!”
Opurtipuntt: (str[6])
Output:
>>> W
>>>
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
16
Lists and strings are similar in many ways – strings can be thought of as lists of characters that can’t be changed.
List Operations
The items at a certain index in a list can be reassigned. Example:
nums = [24,24,24,24,24]
nums[2] = 55 print(nums)
Output:
>>> [24,24,55,24,24]
>>>
Lists can be added and multiplied in the same way as strings. Program:
nums = [1,2,3]
print(nums + [4,5,6]) print(nums *3)
Output:
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
The in operator is also used to determine whether or not a string is a substring of another string.
17
To check if an item is in a list, the in operator can be used. It returns True if the item occurs one or more times in the list, and False if it doesn’t.
Program:
words = ["Donut","Eclair","Froyo","Gingerbread"] print("Donut" in words)
print("Froyo" in words) print("Lolipop" in words)
Output:
>>>
True True
False
>>>
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
Output:
>>>
True
True False False
>>>
18
To check if an item is not in a list, you can use the not operator in one of the following ways:
Program:
nums = [11,22,33]
print(not 44 | in | nums) |
print(44 not | in | nums) |
print(not 22 | in | nums) |
print(22 not | in | nums) |
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
Unlike append, len is a normal function, rather than a method. This means it is written before the list it is being called on, without a dot.
19
List Functions
Another way of altering lists is using the append method. This adds an item to the end of an existing list.
Program:
nums = [1,2,3] nums.append(4) print(nums)
Output:
>>>
[1, 2, 3, 4]
>>>
The dot before append is there because it is a method of the list class.
To get the number of items in a list, you can use the len function. Program:
nums=[1,2,3,4,5]
print(len(nums))
Output:
>>> 5
>>>
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
20
The insert method is similar to append, except that it allows you to insert a new item at any position in the list, as opposed to just at the end.
Program:
words = ["Python","Fun"] index = 1 words.insert(index,"is") print(words)
Output:
>>>
['Python', 'is', 'Fun']
>>>
The index method finds the first occurrence of a list item and returns its index. If the item isn’t in the list, it raises a ValueError.
Program:
letters = ['a','e','i','o','u'] print(letters.index('i')) print(letters.index('a')) print(letters.index('z'))
Output:
2
0
ValueError: 'z' is not in list
>>>
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
21
There are a few more useful functions and methods for lists.
max(list): Returns the list item with the maximum value. min(list): Returns the list item with the minimum value.
list.count(obj): Returns a count of how many times an item occurs in a list. list.remove(obj): Removes an object from a list.
List.reverse(): Reverse objects in a list.
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
22
Range
The range function creates a sequential list of numbers.
The code below generates a list containing all of the integers, up to 10. Example:
>>> numbers = list(range(10))
>>> print(numbers)
Output:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
The call to list is necessary because range by itself creates a range object, and this must be converted to a list if you want to use it as one.
If range is called with one argument, it produces an object with values from 0 to that argument. If it is called with two arguments, it produces values from the first to the second.
Program:
numbers = list(range(3,8)) print(numbers)
print(range(20) == range(0,20))
Output:
>>>
[3, 4, 5, 6, 7]
True
>>>
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
23
range can have a third argument, which determines the interval of the sequence produced. This third argument must be an integer.
Example:
>>> numbers = list(range(5,20,2))
>>> print(numbers)
Output:
[5, 7, 9, 11, 13, 15, 17, 19]
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
The example above iterates through all items in the list, accesses them using their indices, and prints them with exclamation marks.
24
Loops
Sometimes, you need to perform code on each item in a list. This is called iteration, and it can be accomplished with a while loop and a counter variable.
Program:
words = ["Python","Programming","Is","Fun"] counter = 0
max_index = len(words) - 1
while counter <= max_index: word = words[counter] print(word + "!")
Output:
>>>
Python!
Programming! Is!
Fun!
>>>
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
The for loop in Python is like the foreach loop in other languages.
25
Iterating through a list using a while loop requires quite a lot of code, so Python provides the for loop as a shortcut that accomplishes the same thing.
The same code from the previous example can be written with a for loop, as follows:
Program:
words = ["Python","Programming","Is","Fun"] for word in words:
print(word + "!")
Output:
>>>
Python! Programming! Is!
Fun!
>>>
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
You don’t need to call list on the range object when it is used in a for loop, because it isn’t being indexed, so a list isn’t required.
26
The for loop is commonly used to repeat some code a certain number of times. This is done by combining for loops with range objects.
Program:
for i in range(5): print("Python!")
Output:
>>>
Python! Python! Python! Python! Python!
>>>
CONTROL STRUCTURES IN PYTHON
SUMIT S. SATAM
27
You were reading: