- Home
- python Tutorial
- decision-making
Conditional-Statements in Python
Introduction
Decision making statements or conditional statements are used to make all the decisions in facebook. These statements help us execute different blocks of code for different statements that we write. By evaluating the conditional statements the program knows what to do when certain conditions are being met.
The ‘if’ statement
The 'if statement' is used to execute a particular block of code when the condition specified within the statement is true.
Example
grade = 70
if grade >= 65:
print("Passing grade")
With this code, we have the variable grade and are giving it the integer value of 70. We are then using the if statement to evaluate whether or not the variable grade is greater than or equal ( >=
) to 65. If it does meet this condition, we are telling the program to print out the string Passing grade.
Save the program as grade.py and run it in a local programming environment from a terminal window with the command python grade.py
.
In this case, the grade of 70 does meet the condition of being greater than or equal to 65, so you will receive the following output once you run the program:
Output
Passing grade
Let’s now change the result of this program by changing the value of the grade variable to 60:
grade.py
grade = 60
if grade >= 65:
print("Passing grade")
When we save and run this code, we will receive no output because the condition was not met and we did not tell the program to execute another statement.
To give one more example, let us calculate whether a bank account balance is below 0. Let’s create a file called account.py and write the following program:
account.py
balance = -5
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
When we run the program with python account.py
, we’ll receive the following output:
Output
Balance is below 0, add funds now or you will be charged a penalty.
In the program we initialized the variable balance with the value of -5, which is less than 0. Since the balance met the condition of the if
statement (balance < 0), once we save and run the code, we will receive the string output. Again, if we change the balance to 0 or a positive number, we will receive no output.
Else Statement
The else statement represents an alternate block of code that can be executed when the if condition fails.
Note: An ‘else statement’ can be declared only after the ‘if statement’. It cannot exist independently.
Example
grade = 60
if grade >= 65:
print("Passing grade")
else:
print("Failing grade")
Since the grade variable above has the value of 60, the if statement evaluates as false, so the program will not print out Passing grade. The else statement that follows tells the program to do something anyway.
When we save and run the program, we’ll receive the following output:
Output
Failing grade
If we then rewrite the program to give the grade a value of 65 or higher, we will instead receive the output Passing grade
.
To add an else statement to the bank account example, we rewrite the code like this:
account.py
balance = 522
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
else:
print("Your balance is 0 or above.")
Output
Your balance is 0 or above.
Here, we changed the balance variable value to a positive number so that the else statement will print. To get the first if statement to print, we can rewrite the value to a negative number.
By combining an if statement with an else statement, you are constructing a two-part conditional statement that will tell the computer to execute certain code whether or not the if condition is met.
Else if statement
These statements are used when we need to evaluate a situation where there are more than two possible outcomes. The else if statement in python is represented using the keyword ‘elsif’
Example
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
elif balance == 0:
print("Balance is equal to 0, add funds soon.")
else:
print("Your balance is 0 or above.")
Now, there are three possible outputs that can occur once we run the program:
- If the variable balance is equal to 0 we will receive the output from the
elif
statement (Balance is equal to 0, add funds soon.) - If the variable balance is set to a positive number, we will receive the output from the
else
statement (Your balance is 0 or above.). - If the variable balance is set to a negative number, the output will be the string from the
if
statement (Balance is below 0, add funds now or you will be charged a penalty).
What if we want to have more than three possibilities, though? We can do this by writing more than one elif statement into our code.
In the grade.py program, let’s rewrite the code so that there are a few letter grades corresponding to ranges of numerical grades:
- 90 or above is equivalent to an A grade
- 80-89 is equivalent to a B grade
- 70-79 is equivalent to a C grade
- 65-69 is equivalent to a D grade
- 64 or below is equivalent to an F grade
To run this code, we will need one if
statement, three elif
statements, and an else statement that will handle all failing cases.
Let’s rewrite the code from the example above to have strings that print out each of the letter grades. We can keep our else statement the same. grade.py
. . .
if grade >= 90:
print("A grade")
elif grade >=80:
print("B grade")
elif grade >=70:
print("C grade")
elif grade >= 65:
print("D grade")
else:
print("Failing grade")
Since elif
statements will evaluate in order, we can keep our statements pretty basic. This program is completing the following steps:
-
If the grade is greater than 90, the program will print A grade, if the grade is less than 90, the program will continue to the next statement...
-
If the grade is greater than or equal to 80, the program will print B grade, if the grade is 79 or less, the program will continue to the next statement...
-
If the grade is greater than or equal to 70, the program will print C grade, if the grade is 69 or less, the program will continue to the next statement...
-
If the grade is greater than or equal to 65, the program will print D grade, if the grade is 64 or less, the program will continue to the next statement...
-
The program will print Failing grade because all of the above conditions were not met.
Nested If Statements
Sometimes there is a need to check for a secondary condition when a primary condition is true. In such cases python allows us to declare nested if conditions.
We can nest multiple if-else statements with each other.
Example
if statement1: #outer if statement
print("true")
if nested_statement: #nested if statement
print("yes")
else: #nested else statement
print("no")
else: #outer else statement
print("false")
A few possible outputs can result from this code:
- If
statement1
evaluates totrue
, the program will then evaluate whether thenested_statement
also evaluates totrue
. If both cases aretrue
, the output will be:
Output
true
yes
- If, however,
statement1
evaluates totrue
, butnested_statement
evaluates tofalse
, then the output will be:
Output
true
no
- And
if statement1
evaluates tofalse
, the nestedif-else
statement will not run, so theelse
statement will run alone, and the output will be:
Output
false
We can also have multiple if
statements nested throughout our code:
if statement1: #outer if
print("hello world")
if nested_statement1: #first nested if
print("yes")
elif nested_statement2: #first nested elif
print("maybe")
else: #first nested else
print("no")
elif statement2: #outer elif
print("hello galaxy")
if nested_statement3: #second nested if
print("yes")
elif nested_statement4: #second nested elif
print("maybe")
else: #second nested else
print("no")
else: #outer else
statement("hello universe")
In the above code, there is a nested if statement inside each if statement in addition to the elif statement. This will allow for more options within each condition.
Let’s look at an example of nested if statements with our grade.py program. We can check for whether a grade is passing first (greater than or equal to 65%), then evaluate which letter grade the numerical grade should be equivalent to. If the grade is not passing, though, we do not need to run through the letter grades, and instead can have the program report that the grade is failing. Our modified code with the nested if
statement will look like this:
grade.py
. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
print("A")
elif grade >=80:
print("B")
elif grade >=70:
print("C")
elif grade >= 65:
print("D")
else:
print("Failing grade")
If we run the code with the variable grade set to the integer value 92, the first condition is met, and the program will print out Passing grade of:. Next, it will check to see if the grade is greater than or equal to 90, and since this condition is also met, it will print out A.
If we run the code with the grade variable set to 60, then the first condition is not met, so the program will skip the nested if statements and move down to the else statement, with the program printing out Failing grade.
We can of course add even more options to this, and use a second layer of nested if statements. Perhaps we will want to evaluate for grades of A+, A and A- separately. We can do so by first checking if the grade is passing, then checkingto see if the grade is 90 or above, then checkingto see if the grade is over 96 for an A+ for instance:
grade.py
. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
if grade > 96:
print("A+")
elif grade > 93 and grade <= 96:
print("A")
elif grade >= 90:
print("A-")
. . .
In the code above, for a grade variable set to 96, the program will run the following:
- Check if the grade is greater than or equal to 65 (true)
- Print out Passing grade of:
- Check if the grade is greater than or equal to 90 (true)
- Check if the grade is greater than 96 (false)
- Check if the grade is greater than 93 and also less than or equal to 96 (true)
- Print A
- Leave these nested conditional statements and continue with remaining code
The output of the program for a grade of 96 therefore looks like this:
Output
Passing grade of:
A
Nested if
statements can provide the opportunity to add several specific levels of conditions to your code.
Conclusion
By using conditional statements like the if
statement, you will have greater control over what your program executes. Conditional statements tell the program to evaluate whether a certain condition is being met. If the condition is met it will execute specific code, but if it is not met the program will continue to move down to other code.
To continue practicing conditional statements, try using different operators, combining operators with and
or or
, and using conditional statements alongside loops.