This document discusses nested conditional statements, multiple alternatives, and elif statements in Python. It provides examples of nested if/else statements to check for appointment overlaps and determine club entry. It explains that nested branches can be difficult to read and proposes using elif statements instead of excessive nesting. The document concludes by previewing while loops for the next session.
General Principles of Intellectual Property: Concepts of Intellectual Proper...
An Introduction To Python - Nested Branches, Multiple Alternatives
1. An Introduction To Software
Development Using Python
Spring Semester, 2015
Class #6:
Nested Branches,
Multiple Alternatives
2. Sample “IF” Problem
In a scheduling program, we want to check whether two
appointments overlap. For simplicity, appointments start at a
full hour, and we use military time (with hours 0–24).
Image Credit: www.clipartpanda.com
3. “Hand Tracing”
• Hand Tracking is a technique that you can use
in order to determine if your program is
working correctly.
• Mentally execute your program’s statements
and keep track of the value of each variable.
Image Credit: www.clipartbest.com
4. Example: Let’s Talk About Taxes
Federal Tax Rate Schedule
Image Credit: www.clipartpanda.com
5. Hand Tracing The Tax Program
Tax 1 Tax 2 Income Marital
Status
80000 m
6. Hand Tracing The Tax Program
Tax 1 Tax 2 Income Marital
Status
0 0 8000 m
7. Hand Tracing The Tax Program
Tax 1 Tax 2 Income Marital
Status
0 0 8000 m
6400 4000
XXX XXX
8. Hand Tracing The Tax Program
Tax 1 Tax 2 Income Marital
Status
0 0 8000 m
6400 4000 10400
XXX XXX
9. What Is A “Nested Branch”?
• It is often necessary to include an if statement
inside another. Such an arrangement is called
a nested set of statements.
• Example:
Is the
club
full?
Arrive at
the club
Are you
on the
VIP list?
Wait in car
Go right in
Wait in line
Y
Y
N
N
10. Example of a “Nested Branch”
if (peopleInClub < maxPeopleInClub) :
if (youName == VIPListName) :
goRightIn
else :
waitInLine
else :
waitInCar
11. Multiple Alternatives
• What should you do when you have to make a
decision with more than one alternative?
• Example: Telling a student what their grade in
a class was…
12. Example: Telling Students What
Their Grade In A Course Is
If (classScore >=90) :
print(“You got an A!”)
else:
if (classScore >= 80) :
print(“You did ok, you got a B!”)
else:
if (classScore >=70) :
print(“So-so, you got a C”)
else:
if (classScore >= 60) :
print(“Oh –oh, you got a D”)
else :
print(“Dang it, you got an F”)
Image Credit: jghue.blogspot.com
13. Problems With “Super Nesting”
• Difficult to read
• Shifted too far to the right due to indentation
Image Credit: www.clipartbest.com
14. A Better Way: elif
If (classScore >=90) :
print(“You got an A!”)
elif (classScore >= 80) :
print(“You did ok, you got a B!”)
elif (classScore >=70) :
print(“So-so, you got a C”)
elif (classScore >= 60) :
print(“Oh –oh, you got a D”)
else :
print(“Dang it, you got an F”)
Image Credit: jghue.blogspot.com
Note that you have to test the more specific conditions first.
15. Example: Supermarket Coupons
A supermarket awards coupons depending on how much a customer spends on
groceries. For example, if you spend $50, you will get a coupon worth eight percent
of that amount. The following table shows the percent used to calculate the coupon
awarded for different amounts spent. Write a program that calculates and prints the
value of the coupon a person can receive based on groceries purchased.
16. What’s In Your Python Toolbox?
print() math strings I/O IF/Else elif
17. What We Covered Today
1. Hand Tracing
2. Nested Branch
3. elif
Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
18. What We’ll Be Covering Next Time
1. While Loop
Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/
Notas del editor
New name for the class
I know what this means
Technical professionals are who get hired
This means much more than just having a narrow vertical knowledge of some subject area.
It means that you know how to produce an outcome that I value.
I’m willing to pay you to do that.