Designing a while statement which terminates properly
Much of the time, the Python for
statement provides all of the iteration controls we need. In many cases, we can use built-in functions like map()
, filter()
, and reduce()
to process collections of data.
There are a few situations, however, where we need to use a while
statement. Some of those situations involve data structures where we can't create a proper iterator to step through the items. Other items involve interactions with human users, where we don't have the data until we get input from the person.
Getting ready
Let's say that we're going to be prompting a user for their password. We'll use the getpass
module so that there's no echo.
Further, to be sure they've entered it properly, we'll want to prompt them twice and compare the results. This is a situation where a simple for
statement isn't going to work out well. It can be pressed into service, but the resulting code looks strange: for
statements have an explicit upper bound; prompting...