11.7. Using elif correctly¶
In the grade printing program on the previous page, the program checked each possible grade starting with the highest (“A”) and working down to the lowest option (“F”):
if score >= 90: print("A") elif score >= 80: print("B") elif score >= 70: print("C") elif score >= 60: print("D") else: print("F")
This ordering is important, because in an if/elif/else chain, Python will not skip ahead
to “the correct” option. If we put the various grades in a mixed up order, the first
elif whose condition is true is the one that will run.
In this version of the program, a score of 83 will NOT be a B. Can you see why? Try running it in codelens mode.
To avoid issues like that, we always need to put the
elif options in order from
highest to lowest, or from lowest to highest. The program below shows starting with the
lowest option and working our way up. Assumes x represents a percentile and we want to
indicate which quartile it is in.
Write the code for the function
tempDescription. It should take
temp as a parameter
that represents a temperature in degrees F. It should return the string
"Hot" if the temp
is above 80,
"Warm" if it is not above 80 but is above 70,
"Cool" if it is not above 70
but is above 60, and
"Cold" otherwise (below 60).
Hint: You don’t have to solve it all at once. You can start with just an
if that only
handles temp’s greater than 80. Then add an
elif to handle the Warm temps.
Then add one for Cool…
Make sure to
return the answers and not just