More about Iteration Victor Norman CS104

advertisement
More about Iteration
Victor Norman
CS104
Reading Quiz
For Loop Review
• Syntax:
for <var> in <sequence>:
<statements>
• <statements> (i.e., the body) are executed a fixed number of times –
the number of items in <sequence>.
• <var> “iterates” through <sequence> -- takes the next value on each
time through the loop.
For loop Review continued
• range() is very useful to create a <sequence>.
• range(start, stop, step)
• When used in place of <sequence>, let’s you iterate through loop multiple
times.
• E.g.,
for i in range(20, 31):
print(i)
While loop syntax
• while <Boolean expression>:
<statements>
• “As long as the Boolean expression is True”, do the statements.
• Why have both for-loop and while-loop in Python?
• While loop is Indefinite iteration
• For loop is definite iteration: loop is done a prescribed # of times.
• No Boolean test is done.
CQ: In a while loop like this:
while <Boolean expression>:
<statements>
Is it a good idea for the statements in the
body to change any variables’ values that are
used in the Boolean expression?
CQ: What is printed by the following code?
(Output is on one line to save space.)
x = 6
while x > 4:
print(x)
x = x - 1
CQ: What is printed by the following code?
(Output is on one line to save space.)
x = 0
while x < 2:
y = 1
while y < 4:
print(x + y)
y = y + 2
x = x + 1
Exercise:
• Write code to do this (where user enters any name or q):
Enter your name (q to quit): Arthur
Hello, Arthur
Enter your name (q to quit): Merlin
Hello, Merlin
Enter your name (q to quit): q
Goodbye.
Answer
name = input(“Enter your name (q to quit):”)
while name != “q”:
print(“Hello,” + name)
name = input(“Enter your name (q to quit):”)
print(“Goodbye.”)
break Statement (not in the book)
• only can be used inside a loop body
• instantly stops the loop and jumps to the next statement after the
end of the loop.
• useful for when you have an if in a loop and want to stop
• e.g., when you are searching and find the item.
continue Statement (not in book)
• only can be used in body of a loop.
• instantly jumps back up to the next iteration of the loop.
• very useful when “filtering” out stuff.
continue Example
earthquakes = [ … ]
for e in earthquakes:
# filter out earthquakes that are too small
if magnitude(e) < 5.0:
continue
# skip this earthquake e
# more filters here, perhaps…
print(e)
# only prints large earthquakes
CQ: What for loop is equivalent to this while
loop?:
x = 3
while x < 7:
print(x)
x = x + 2
CQ: What does this code do?
inputs = [ … some list of strings … ]
for elem in inputs:
if elem == ‘q’ or elem == ‘Q’:
break
if elem[0] == ‘#’:
continue
doStuffWith(elem)
Download