Class 21 – Monday March 4
You are so controlling
While I can go on – I do not repeat myself – Always a new way
Look both ways
Agenda
- Introduce the
while
statement and foreshadowdict
To be considered
- How would you handle the problem of getting a yes or no reponse from a user, where case of the letters do not matter. Once gotten, the valid response is echoed (printed).
- Questions
- Do we know ahead of time, how many iterations are needed?
- What action(s) need to be done multiple times?
- What action(s) need to be done once?
- Some possible runs
Enter (yes / no): yeah
Enter (yes / no): yeap
Enter (yes / no): tá
Enter (yes / no): כן
Enter (yes / no): ndiyo
Enter (yes / no): haan
Enter (yes / no): YeS
yes
Enter (yes / no): nah
Enter (yes / no): không
Enter (yes / no): nope
Enter (yes / no): aʻole
Enter (yes / no): ei
Enter (yes / no): NO
no
Whiling away
- Like many programming languages, Python provides more than one way to iterate actions (repeatedly execute). We are concerned here with its
while
looping offering.
- The
while
loop differs from thefor
loop in that the number of times it iterates is not based on the size of a list or range; instead, iteration is based on a logical test expression.
- The basic
while
state has the form:
while ( test expression ) :
action
- When Python reaches a
while
loop, it will repeatedly execute the loop's actions as long as the test expression evaluates to true. When the test expression evaluates false, the program drops down to the statement following the loop. For example, consider yes_or_no.py
looking_for_a_yes_or_no = True
while ( looking_for_a_yes_or_no ) :
reply = input( 'Enter (yes / no): ' )
reply = reply.lower()
if ( reply in [ 'yes', 'no' ] ) :
looking_for_a_yes_or_no = False
print( reply )
- FYI: Python is one of the languages whose
while
statement also allows an optionalelse
. Theelse
action is executed once the test expression evaluates to false.
while ( test expression ) :
action
else :
action
Program guess_what.py
- Play a guessing name with the user. The program is to determine what number the user has guessedl, where the possible numbers are from 0 to 100,000.
- Questions
- How would you solve the problem if you were the guesser?
- Can we do this with a
for
loop? If, so what are some possible ways?
- Can we do this with a
while
loop? If, so what are some possible ways?
Program even_odd.py
- Introduce the Python
dict
data structure
Program que_dijiste.py
- Reads and prints the babelfish csv-based translation dictionary
Problems
- Program guess_what.py
- Program even_odd.py
- Program que_dijiste.py
To do
- Homework 18 — due Thursday
- Homework 19 — due Tuesday after Spring break