While loops¶
Definition¶
A while loop will continue to repeat a block of code while some condition is true. It checks the condition at the start of each loop and if it is False
then it doesn’t run the block of code.
Hint
A while loop will always need the condition to result in True
or False
.
Easy example¶
fileName = ''
while fileName == '':
fileName = input('Please enter a filename: ')
print('Thank you.')
Please enter a filename:
Please enter a filename:
Please enter a filename:
Please enter a filename: test.py
Thank you.
The text Please enter a filename:
will keep on displaying on the screen every time Enter is pressed. It will stop this loop if any text is entered.
Syntax¶
while condition:
print('do this') #the conditions indented will repeat while the condition is true
print('and this')
print('After, do this') #this will happen once the condition is false
Examples¶
Example 1 - While to check a string¶
userPassword = ''
while userPassword != 'secret':
userPassword = input('Type in your password: ')
print('Access granted!')
Type in your password: hello
Type in your password: name
Type in your password: password
Type in your password: secret
Access granted!
Example 2 - While with a flag - to continue playing a game¶
playGame = True
while playGame:
print('We are playing the game')
playAgain = input('Would you like to playAgain? ')
if playAgain == 'n' or playAgain == 'no':
playGame = False
print('Thank you for playing')
We are playing the game
Would you like to playAgain? yes
We are playing the game
Would you like to playAgain? y
We are playing the game
Would you like to playAgain? no
Thank you for playing
Note
==
means is equal to. We need to use two equals symbols as =
is used for assigning variables.
Example 3 - An infinite loop¶
while True:
print('hello')
hello
hello
hello
hello
hello
hello
hello
hello
...
This will continue forever. Press CTRL-C to stop the program running.
Warning
Infinite loops should be avoided at all costs. Think about a different way of solving a problem to avoid them.
Example 4 - While to check a list¶
usernames = ['Tony', 'asmith', 'Angela']
userChoice = ''
while userChoice not in usernames:
userChoice = input('Type in your username: ')
print('Hi ' + userChoice)
Type in your username:
Type in your username: asm
Type in your username: asmit
Type in your username: asmith
Hi asmith
Key points¶
Hint
Beginners will often write while gameOver == True:
. This should be rewritten while gameOver:
and is easier for programmers to read.
Note
while True:
creates an infinite loop. It is possible to break out from this if a condition is met using the break
keyword. In general, break
is not a good technique to use as it can make code hard to debug - use flags instead.
Note
A while loop is one way of performing iteration (looping). The other way is to use a for loop. While loops are also known as condition-controlled loops/iteration.
See also
It is important that you understand Comparison and logical operators to use loops well.