Welcome to another tutorial, here you will learn more ways to control the flow of execution. In any programming language, there are two types of ways to achieve flow control, and they are:
So, we are going to look at the conditional statements in the tutorial.
When coding certain situation makes it is necessary to take care of different possible conditions that might arise while executing the program. In this case, the if conditions will be okay.
Below is the syntax for using the if keyword.
if [conditional expression]:
[statement(s) to execute]
Notice that the if keyword and the conditional expression are ended with a colon. Now, in [conditional expression] some, conditional expression is introduced which is required to return a boolean value of either True or False. However, if the resulting value is True; the [statement to execute] is executed, which is mentioned below the keyword condition with a tabspace, note that the indentation is very important.
Now, let's make use of real-world problems.
>>> savingAmt = 1000
>>> withdrawAmt = int(input("Amount to Withdraw: "));
>>> if withdrawAmt > savingAmt:
print ("Insufficient balance");
Output:
Amount to Withdraw: 2000
Insufficient balance
In Python, we have two additional keywords that are optional but can be used along with the if statement. They include:
Check the example below to know how the else condition works alongside the if statement.
if[conditional expression]:
[statement to execute]
else:
[alternate statement to execute]
However, using the if and else, we can diverge the flow of execution into two different directions. Firstly, for savings accounts, there will be two cases only, which are: you have sufficient money or you don't, however, suppose we came across certain issues in which there are more than two possibilities? Here we can use another statement that is accompanied by the if and else statements known as elif or else-if in terms of proper English.
if withdrawAmt > savingAmt:
print ("Insufficient balance");
else:
savingAmt = savingAmt - withdrawAmt
print ("Account Balance:" + str(savingAmt));
In addition, an elif statement is added between if and else blocks.
if[condition #1]:
[statement #1]
elif[condition #2]:
[statement #2]
elif[condition #3]:
[statement #3]
else:
[statement when if and elif(s) are False]
From the example above, we can add more elif blocks as we want.
Now, suppose you are given time and required to tell what phase of the day it is i.e morning, noon, afternoon, evening, or night. This means that you have to check the given time against multiple ranges of time within which each of the 5 phases lies. Below is the condition:
Check out the example below with if, elif & else conditional statements.
if (time >= 600) and (time < 1200):
print ("Morning");
elif (time == 1200):
print ("Noon");
elif (time > 1200) and (time <= 1700):
print ("Afternoon");
elif (time > 1700) and (time <= 2000):
print ("Evening");
elif ((time > 2000) and (time < 2400)) or ((time >= 0) and (time < 600)):
print ("Night");
else:
print ("Invalid time!");
From above, you will see the logical operators that have been used in each condition in the program. However, the above example illustrates how we can generally use those conditional statements with an if-else statement.
In simple terms, nesting if else referred to bringing if-else statements inside another if-else statement syntactically. Check out the example below:
if[condition #1]:
if[condition #1.1]:
[statement to exec if #1 and #1.1 are true]
else:
[statement to exec if #1 and #1.1 are false]
else:
[alternate statement to execute]
In addition, one can also write the same if-else block inside an else block as well. Also, the elif condition can be added depending on the need. More so, nested if-else is an alternative to elif. Check the example below:
if (time >= 600) and (time < 1200):
print ("Morning");
else:
if (time == 1200):
print ("Noon");
else:
if (time > 1200) and (time <= 1700):
print ("Afternoon");
else:
if (time > 1700) and (time <= 2000):
print ("Evening");
else:
if ((time > 2000) and (time < 2400)) or ((time >= 0) and (time < 600)):
print ("Night");
else:
print ("Invalid time!");
From the above example, you can see that we added a condition to the if block, and we later used another if-else block in its else block. So, therefore, we continued nesting until all conditions were met.
Nesting is very crucial in various situations, and in some cases, it is the only way out of a given condition.
Furthermore, in one of the examples above on savings bank accounts. But, there is a quicker way to do this even in one-line code using Python. Check out the example above.
>>> savingAmt = savingAmt - withdrawAmt if (savingAmt > withdrawAmt) else savingAmt