Table of Contents
Boolean
Since we have seen that control structure depends on ==test==. Test is nothing but a statement in pyton whose value is either True
or False
but not together. For this we have a data type in python to represent this, known as boolean data type.
Assigning Boolean Data
test1 = True
test2 = False
print(test1)
print(test2)
True
False
Many relational operation result in boolean in pyton. For example if we ask following questions?
test1 = 5 >= 0 # True
test2 = 5 < 0 # False
test3 = 6 == 3 # False
test4 = (6/2 == 3) # Ture, use bracket for better looks
print(test1)
print(test2)
print(test3)
print(test4)
True
False
False
True
We can also check some variable has a particular value or not using this idea.
f_name = "Sandeep"
l_name = "Suman"
full_name = f_name + " " + l_name
test1 = (full_name == "Sandeep Suman")
print(test1)
True
Boolean Operations
Boolean data has three main operation. Others are combination of them
- not: It interchange the value of boolean between
True
andFalse
. - or: It takes the logical
or
operation between two boolean statements. - and: It takes the logical
and
operation between two boolean statements.
The result can be summarized in a table as follows
A | B | not A | not B | A == B | A =! B | A or B | A and B |
---|---|---|---|---|---|---|---|
T | F | F | T | F | T | T | F |
F | T | T | F | F | T | T | F |
T | T | F | F | T | F | T | T |
F | F | T | T | T | F | F | F |
f_name = "Sandeep"
l_name = "Suman"
full_name = f_name + " " + l_name
test1 = (full_name == "Sandeep Suman") # True
test2 = not test1 # not True = False
test3 = (full_name == "Sandeep Suman") or (5 <= 0) # True OR False = True
test4 = (full_name == "Sandeep Suman") and (5 <= 0) # True AND False = False
print(test1)
print(test2)
print(test3)
print(test4)
True
False
True
False
Conditional Statements
Till now all the lines of a program run one by one. The control structure will enable us to run a line based on a ==test==.
General Structure
The structure of general control struructure in python(or in any programming language) will look like the following:
if <test1>:
<statement1>
elif <test2>:
<statement2>
.
.
.
else:
<final statement>
The situation can graphically represented as the following diagram
If we look at another perspective we can think this as the following sequnce of tests
When the i-th test fails, then program check for (i+1)-th test and so on. If any test say k-th one will pass then the program will run the k-th statement will run and program will exit this control structure. If all the statement fails the program will run the final statement nested under else
.
Implementation
Except the first if statement all other are optional. We can combine as many test as we want.
One Test: The smallest possible program with
if
statement can written as followingnumber = 77 if number > 60: # colon represent a block in python print("1st Devision") # each block need to be indented by 4 whitespace
1st Devision
The output is expected. But even if the number $\leq 60$, we will not get any output because the code has no
else
statement.number = 55 if number > 60: print("1st Division")
If…else: We can combine
else
to catch the program when test fails as followsnumber = 55 if number > 60: print("1st Division") else: print("Not 1st Division")
Not 1st Division
Elif: More than one test can be used using
elif
statement.number = 37 if number >= 60: print("1st Division") elif number >= 45: print("2nd Division") elif number >= 35: print("Third Division") else: print("Fail")
Third Division
Ex: Change the number to get each type of output.
Ex: Write a program that will give the grade of a student based on marks. You can use any criteria for grade.