The while statement allows you to repeatedly execute a block of
statements as long as a condition is true. A while statement is an
example of what is called a looping statement. A
while statement can have an optional else clause.
Example 6.2. Using the while statement
#!/usr/bin/python # Filename: while.py number = 23 running = True while running: guess = int(raw_input('Enter an integer : ')) if guess == number: print 'Congratulations, you guessed it.' running = False # this causes the while loop to stop elif guess < number: print 'No, it is a little higher than that.' else: print 'No, it is a little lower than that.' else: print 'The while loop is over.' # Do anything else you want to do here print 'Done'
$ python while.py Enter an integer : 50 No, it is a little lower than that. Enter an integer : 22 No, it is a little higher than that. Enter an integer : 23 Congratulations, you guessed it. The while loop is over. Done
In this program, we are still playing the guessing game, but the advantage
is that the user is allowed to keep guessing until he guesses correctly -
there is no need to repeatedly execute the program for each guess as we
have done previously. This aptly demonstrates the use of the
while statement.
We move the raw_input and if
statements to inside the while loop and set the
variable running to True before
the while loop. First, we check if the variable running
is True and then proceed to execute the corresponding
while-block. After this block is executed, the
condition is again checked which in this case is the running
variable. If it is true, we execute the while-block again, else we continue
to execute the optional else-block and then continue to the next statement.
The else block is executed when the while
loop condition becomes False - this may even be the first
time that the condition is checked. If there is an else
clause for a while loop, it is always executed unless you
have a while loop which loops forever without ever breaking
out!
The True and False are called Boolean
types and you can consider them to be equivalent to the value
1 and 0 respecitvely. It's important
to use these where the condition or checking is important and not the actual
value such as 1.
The else-block is actually redundant since you can put those statements
in the same block (as the while statement) after the
while statement to get the same effect.
Remember that you can have an else clause for
the while loop.