Section 6.5 Definite loops using for
Sometimes we want to loop through a set of things, such as a list of words, the lines in a file, or a list of numbers. When we have a list of things to loop through, we can construct a definite loop using a for
statement. We call the while
statement an indefinite loop because it simply loops until some condition becomes False
, whereas the for
loop is looping through a known set of items so it runs through as many iterations as there are items in the set.
Checkpoint 6.5.1.
Q-1: The while loop is an “indefinite” loop because…
it loops through a known set of items so it runs through as many iterations as there are items in the set.
Incorrect! A while loop does not run through a known set of items. Try again.
it loops until some condition becomes True.
Incorrect! A while loop will keep iterating while the condition is True. Try again.
it loops until some condition becomes False.
Correct! A while loop continues until the condition is False. There is no definite answer to when that happens; it all depends on the incrementation.
it loops until it reaches a "break" statement.
Incorrect! A while loop can stop at a break statement, but so can any other loop. Try again.
Checkpoint 6.5.2.
Q-2: The for loop is not an “indefinite” loop because…
it loops through a known set of items so it runs through as many iterations as there are items in the set.
Correct! A for loop only runs through a distinct set of items.
it loops until some condition becomes True.
Incorrect! A for loop does not check any condition to decide whether it should continue to iterate. Try again.
it loops until some condition becomes False.
Incorrect! This is the condition for a while loop to stop. Try again.
it loops until it reaches a "break" statement.
Incorrect! A for loop can stop at a break statement, but so can any other loop. Try again.
The syntax of a for
loop is similar to the while
loop in that there is a for
statement and a loop body:
In Python terms, the variable friends
is a list (We will examine lists in more detail in a later chapter) of three strings. The for
loop goes through the list and executes the body once for each of the three strings in the list resulting in this output:
Happy New Year: Joseph
Happy New Year: Glenn
Happy New Year: Sally
Done!
Translating this for
loop to English is not as direct as the while
, but if you think of friends as a set, it goes like this: “Run the statements in the body of the for loop once for each friend in the set named friends.”
Looking at the for
loop, for and in are reserved Python keywords, and friend
and friends
are variables.
for friend in friends:
print('Happy New Year:', friend)
In particular, friend
is the iteration variable for the for loop. The variable friend
changes for each iteration of the loop and controls when the for
loop completes. The iteration variable steps successively through the three strings stored in the friends
variable.
Checkpoint 6.5.3.
Construct a block of code that prints “Hello, Prisha”, “Hello, Kahlil”, “Hello, Nirav”, “Hello, Aliyah”, and “Hello, Antonella”. After saying hello to each name in the list, print “All done!”. Watch out for three extra pieces of code and make sure your indentation is correct.
names = ['Prisha', 'Kahlil', 'Nirav', 'Aliyah', 'Antonella']
---
for name in names:
---
for names in names: #paired
---
print("Hello,", name)
---
print("Hello", name) #paired
---
print("All done!")
---
print(All done!) #paired