Examples of Conditional Statements¶
Conditional Statements and Loops¶
We will often use if statements in conjunctions with loops. In the example below, we are provided with two lists, one that contains the names of several students, and one that contains the grades that these students got on an exam. We will loop over these lists, printing a different message for each student.
names = ['Anna', 'Beth', 'Chad', 'Drew', 'Elsa', 'Fred']
grades = [56, 92, 87, 43, 75, 62]
for i in range(0, len(names) ):
if grades[i] >= 90:
print(names[i] + " got a grade of 'A' on the exam.")
elif grades[i] >= 80:
print(names[i] + " got a grade of 'B' on the exam.")
elif grades[i] >= 70:
print(names[i] + " got a grade of 'C' on the exam.")
elif grades[i] >= 60:
print(names[i] + " got a grade of 'D' on the exam.")
else:
print(names[i] + " got a grade of 'F' on the exam.")
Anna got a grade of 'F' on the exam.
Beth got a grade of 'A' on the exam.
Chad got a grade of 'B' on the exam.
Drew got a grade of 'F' on the exam.
Elsa got a grade of 'C' on the exam.
Fred got a grade of 'D' on the exam.
Example: Determining if Elements of a List are Odd or Even¶
The modulus %
is a mathematical operator that can be used to test for divisibilitiy. The expression a % b
returns the remainder of a
after division by b
. If that remainder is 0, then that means that a
is divisible by b
.
For example:
print(27 % 3 == 0)
print(17 % 3 == 0)
True
False
One common use of the modulus operator is to check if a number is odd or even.
print(19 % 2 == 0 )
print(16 % 2 == 0 )
False
True
A list of integers is provided below. The for loop shown will loop over all of the elements of this list, displaying one of the following messages for each element of the list:
[x] is even.
[x] is odd.
my_list = [74, -55, -77, 58, 0, 91, 62, 0, -91, 61]
for i in range(0, len(my_list)):
if my_list[i] % 2 == 0:
print(str(my_list[i]) + " is even.")
else:
print(str(my_list[i]) + " is odd.")
74 is even.
-55 is odd.
-77 is odd.
58 is even.
0 is even.
91 is odd.
62 is even.
0 is even.
-91 is odd.
61 is odd.
Example: Determining if Elements of a List are Positive, Negative, or Neither¶
The cell below contains a look that will print out one of the following messages for each item in my_list
.
[x] is positive.
[x] is negative.
[x] is neither positive nor negative.
for i in range(0, len(my_list)):
if my_list[i] < 0:
print(str(my_list[i]) + " is negative.")
elif my_list[i] > 0:
print(str(my_list[i]) + " is positive.")
else:
print(str(my_list[i]) + " is neither positive nor negative.")
74 is positive.
-55 is negative.
-77 is negative.
58 is positive.
0 is neither positive nor negative.
91 is positive.
62 is positive.
0 is neither positive nor negative.
-91 is negative.
61 is positive.
Example: Classifying Credit Scores¶
Two lists are given below. One provides a list of names. The other provides a list of credit scores associated with each of the people in the first list. Assume that credit scores are classified as follows:
0 - 599 is considered “bad”.
600 - 649 is considered “poor”.
650 - 699 is considered “fair”.
700 - 749 is considered “good”.
750 and up is considered “excellent”.
names = ['Anna', 'Beth', 'Chad', 'Drew', 'Elsa', 'Fred']
credit = [683, 580, 752, 607, 615, 703]
The cell below contains a loop that prints a statement of the following form for each individuals:
[name] has a [bad/poor/fair/good/excellent] credit score.
for i in range(0, len(names)):
if(credit[i] <= 599):
print(names[i] + " has a bad credit score.")
elif(credit[i] <= 649):
print(names[i] + " has a poor credit score.")
elif(credit[i] <= 699):
print(names[i] + " has a fair credit score.")
elif(credit[i] <= 749):
print(names[i] + " has a good credit score.")
else:
print(names[i] + " has a excellent credit score.")
Anna has a fair credit score.
Beth has a bad credit score.
Chad has a excellent credit score.
Drew has a poor credit score.
Elsa has a poor credit score.
Fred has a good credit score.
credit_group = []
for i in range(0, len(names)):
if credit[i] >= 750:
credit_group.append(4)
elif credit[i] >= 700:
credit_group.append(3)
elif credit[i] >= 650:
credit_group.append(2)
elif credit[i] >= 600:
credit_group.append(1)
else:
credit_group.append(0)
print(credit)
print(credit_group)
[683, 580, 752, 607, 615, 703]
[2, 0, 4, 1, 1, 3]
Example: Exam Results¶
In the cell below, we are provided with three lists. The list names
contains the names of students, grades1
contains scores for Exam 1, and grades2
contains scores for Exam 2.
names = ['Anna', 'Beth', 'Chad', 'Drew', 'Elsa', 'Fred']
grades1 = [56, 92, 87, 43, 75, 62]
grades2 = [81, 95, 72, 21, 58, 64]
Assume that a grade of 60 or higher is a passing grade. The cell below contains a loop that prints one of the following messages for each student:
[name] passed both exams.
[name] passed exam 1, but not exam 2.
[name] passed exam 2, but not exam 1.
[name] failed both exams.
for i in range(len(names)):
if (grades1[i] >= 60) and (grades2[i] >= 60):
print(names[i], 'passed both exams.')
elif (grades1[i] >= 60) and (grades2[i] < 60):
print(names[i], 'passed exam 1, but not exam 2.')
elif (grades1[i] < 60) and (grades2[i] >= 60):
print(names[i], 'passed exam 2, but not exam 1.')
elif (grades1[i] < 60) and (grades2[i] < 60):
print(names[i], 'failed both exams.')
Anna passed exam 2, but not exam 1.
Beth passed both exams.
Chad passed both exams.
Drew failed both exams.
Elsa passed exam 1, but not exam 2.
Fred passed both exams.
for i in range(len(names)):
if (grades1[i] >= 60) and (grades2[i] >= 60):
print(names[i] + ' passed both exams.')
elif grades1[i] >= 60:
print(names[i] + ' passed exam 1, but not exam 2.')
elif grades2[i] >= 60:
print(names[i] + ' passed exam 2, but not exam 1.')
else:
print(names[i] + ' failed both exams.')
Anna passed exam 2, but not exam 1.
Beth passed both exams.
Chad passed both exams.
Drew failed both exams.
Elsa passed exam 1, but not exam 2.
Fred passed both exams.