04 - Gaddis Python - Lecture - PPT - ch04
04 - Gaddis Python - Lecture - PPT - ch04
Fifth Edition
Chapter 4
Repetition Structures
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4-1
Topics
• Introduction to Repetition Structures
• The while Loop: a Condition-Controlled Loop
• The for Loop: a Count-Controlled Loop
• Calculating a Running Total
• Sentinels
• Input Validation Loops
• Nested Loops
• Turtle Graphics: Using Loops to Draw Designs
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4-2
Introduction to Repetition Structures
• Often have to write code that performs the same task
multiple times
– Disadvantages to duplicating code
Makes program large
Time consuming
May need to be corrected in many places
• Repetition structure: makes computer repeat included
code as necessary
– Includes condition-controlled loops and count-
controlled loops
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4-3
The while Loop: a Condition-
Controlled Loop (1 of 4)
• while loop: while condition is true, do something
– Two parts:
Condition tested for true or false value
Statements repeated as long as condition is true
– In flow chart, line goes back to previous part
– General format:
while condition:
statements
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4-4
The while Loop: a Condition-
Controlled Loop (2 of 4)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4-5
The while Loop: a Condition-
Controlled Loop (3 of 4)
• In order for a loop to stop executing, something has to
happen inside the loop to make the condition false
• Iteration: one execution of the body of a loop
• while loop is known as a pretest loop
– Tests condition before performing an iteration
Will never execute if condition is false to start with
Requires performing some steps prior to the loop
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4-6
The while Loop: a Condition-
Controlled Loop (4 of 4)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4-7
Infinite Loops
• Loops must contain within themselves a way to
terminate
– Something inside a while loop must eventually make
the condition false
• Infinite loop: loop that does not have a way of
stopping
– Repeats until program is interrupted
– Occurs when programmer forgets to include stopping
code in the loop
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4-8
The for Loop: a Count-Controlled Loop
(1 of 2)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4-9
The for Loop: a Count-Controlled Loop
(2 of 2)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 10
Using the range Function with the for
Loop
• The range function simplifies the process of writing a
for loop
– range returns an iterable object
Iterable: contains a sequence of values that can be
iterated over
• range characteristics:
– One argument: used as ending limit
– Two arguments: starting value and ending limit
– Three arguments: third argument is step value
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 11
Using the Target Variable Inside the
Loop
• Purpose of target variable is to reference each item in
a sequence as the loop iterates
• Target variable can be used in calculations or tasks in
the body of the loop
– Example: calculate square root of each number in a
range
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 12
Letting the User Control the Loop
Iterations
• Sometimes the programmer does not know exactly
how many times the loop will execute
• Can receive range inputs from the user, place them in
variables, and call the range function in the for clause
using these variables
– Be sure to consider the end cases: range does not
include the ending limit
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 13
Generating an Iterable Sequence that
Ranges from Highest to Lowest
• The range function can be used to generate a
sequence with numbers in descending order
– Make sure starting number is larger than end limit, and
step value is negative
– Example: range(10, 0, -1)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 14
Calculating a Running Total (1 of 2)
• Programs often need to calculate a total of a series of
numbers
– Typically include two elements:
A loop that reads each number in series
An accumulator variable
– Known as program that keeps a running total:
accumulates total and reads in series
– At end of loop, accumulator will reference the total
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 15
Calculating a Running Total (2 of 2)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 16
The Augmented Assignment Operators
(1 of 2)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 17
The Augmented Assignment Operators
(2 of 2)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 18
Sentinels
• Sentinel: special value that marks the end of a
sequence of items
– When program reaches a sentinel, it knows that the
end of the sequence of items was reached, and the
loop terminates
– Must be distinctive enough so as not to be mistaken for
a regular value in the sequence
– Example: when reading an input file, empty line can be
used as a sentinel
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 19
Input Validation Loops (1 of 3)
• Computer cannot tell the difference between good
data and bad data
– If user provides bad input, program will produce bad
output
– GIGO: garbage in, garbage out
– It is important to design program such that bad input is
never accepted
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 20
Input Validation Loops (2 of 3)
• Input validation: inspecting input before it is processed
by the program
– If input is invalid, prompt user to enter correct data
– Commonly accomplished using a while loop which
repeats as long as the input is bad
If input is bad, display error message and receive
another set of data
If input is good, continue to process the input
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 21
Input Validation Loops (3 of 3)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 22
Nested Loops (1 of 3)
• Nested loop: loop that is contained inside another loop
– Example: analog clock works like a nested loop
Hours hand moves once for every twelve movements of
the minutes hand: for each iteration of the “hours,” do
twelve iterations of “minutes”
Seconds hand moves 60 times for each movement of the
minutes hand: for each iteration of “minutes,” do 60
iterations of “seconds”
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 23
Nested Loops (2 of 3)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 24
Nested Loops (3 of 3)
• Key points about nested loops:
– Inner loop goes through all of its iterations for each
iteration of outer loop
– Inner loops complete their iterations faster than outer
loops
– Total number of iterations in nested loop:
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 25
Turtle Graphics: Using Loops to Draw
Designs (1 of 4)
• You can use loops with the turtle to draw both simple
shapes and elaborate designs. For example, the
following for loop iterates four times to draw a square
that is 100 pixels wide:
for x in range(4):
turtle.forward(100)
turtle.right(90)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 26
Turtle Graphics: Using Loops to Draw
Designs (2 of 4)
• This for loop iterates eight times to draw the
octagon:
for x in range(8):
turtle.forward(100)
turtle.right(45)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 27
Turtle Graphics: Using Loops to Draw
Designs (3 of 4)
• You can create interesting designs by repeatedly
drawing a simple shape, with the turtle tilted at a
slightly different angle each time it draws the shape.
for x in range(NUM_CIRCLES):
turtle.circle(RADIUS)
turtle.left(ANGLE)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 28
Turtle Graphics: Using Loops to Draw
Designs (4 of 4)
• This code draws a sequence of 36 straight lines to
make a "starburst" design.
turtle.hideturtle()
turtle.penup()
turtle.goto(START_X, START_Y)
turtle.pendown()
for x in range(NUM_LINES):
turtle.forward(LINE_LENGTH)
turtle.left(ANGLE)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 29
Summary
• This chapter covered:
– Repetition structures, including:
Condition-controlled loops
Count-controlled loops
Nested loops
– Infinite loops and how they can be avoided
– range function as used in for loops
– Calculating a running total and augmented assignment
operators
– Use of sentinels to terminate loops
– Using loops to draw turtle graphic designs
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 4 - 30