Download print

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Law of large numbers wikipedia , lookup

Addition wikipedia , lookup

Mathematics of radio engineering wikipedia , lookup

Elementary mathematics wikipedia , lookup

Transcript
Python
Loops and Iteration
Repeated Steps
n=5
No
Yes
n>0?
Program:
n=5
while n > 0 :
print n
n=n–1
print 'Blastoff!'
print n
Output:
5
4
3
n = n -1
2
1
Blastoff!
0
print 'Blastoff'
Loops (repeated steps) have iteration variables
that change each time through a loop. Often
these iteration variables go through a sequence of
numbers.
print n
n=5
No
Yes
An Infinite Loop
n>0?
print 'Lather'
print 'Rinse'
n=5
while n > 0 :
print 'Lather'
print 'Rinse'
print 'Dry off!'
print 'Dry off!'
What is wrong with this loop?
Breaking Out of a Loop
•
The break statement ends the current loop and jumps to the
statement immediately following the loop
while True:
line = raw_input('> ')
if line == 'done' :
break
print line
print 'Done!'
> hello there
hello there
> finished
finished
> done
Done!
while True:
line = raw_input('> ')
if line == 'done' :
break
print line
print 'Done!'
No
Yes
True ?
....
break
...
print 'Done'
http://en.wikipedia.org/wiki/Transporter_(Star_Trek)
Definite Loops
•
•
•
•
Quite often we have a list of items of the lines in a file effectively a finite set of things
We can write a loop to run the loop once for each of the items in
a set using the Python for construct
These loops are called "definite loops" because they execute an
exact number of times
We say that "definite loops iterate through the members of a set"
A Simple Definite Loop
for i in [5, 4, 3, 2, 1] :
print i
print 'Blastoff!'
5
4
3
2
1
Blastoff!
A Simple Definite Loop
friends = ['Joseph', 'Glenn', 'Sally']
for friend in friends :
print 'Happy New Year: ', friend
print 'Done!'
Happy New Year: Joseph
Happy New Year: Glenn
Happy New Year: Sally
Done!
The range() function (revisited)
•
•
•
range() is a built-in function
that allows you to create a
sequence of numbers in a
range
Very useful in “for” loops
which are discussed later
in the Iteration chapter
Takes as an input 1, 2, or 3
arguments. See examples.
x = range(5)
print x
[0, 1, 2, 3, 4]
x = range(3, 7)
print x
[3, 4, 5, 6]
x = range(10, 1, -2)
print x
[10, 8, 6, 4, 2]
A Simple Definite Loop iterating
over a range
7
for i in range(7, 0, -1) :
print i
print 'Blastoff!'
6
5
4
3
2
1
Blastoff!
Looping through a Set
print 'Before'
for thing in [9, 41, 12, 3, 74, 15] :
print thing
print 'After'
Before
9
41
12
3
74
15
After
Counting in a Loop
zork = 0
print 'Before', zork
for thing in [9, 41, 12, 3, 74, 15] :
zork = zork + 1
print zork, thing
print 'After', zork
Before 0
19
2 41
3 12
43
5 74
6 15
After 6
To count how many times we execute a loop we introduce a counter
variable that starts at 0 and we add one to it each time through the
loop.
Summing in a Loop
zork = 0
print 'Before', zork
for thing in [9, 41, 12, 3, 74, 15] :
zork = zork + thing
print zork, thing
print 'After', zork
Before 0
99
50 41
62 12
65 3
139 74
154 15
After 154
To add up a value we encounter in a loop, we introduce a sum variable
that starts at 0 and we add the value to the sum each time through the
loop.
Finding the Average in a Loop
count = 0
sum = 0
print 'Before', count, sum
for value in [9, 41, 12, 3, 74, 15] :
count = count + 1
sum = sum + value
print count, sum, value
print 'After', count, sum, sum / count
Before 0 0
199
2 50 41
3 62 12
4 65 3
5 139 74
6 154 15
After 6 154 25
An average just combines the counting and sum
patterns and divides when the loop is done.
Filtering in a Loop
print 'Before'
for value in [9, 41, 12, 3, 74, 15] :
if value > 20:
print 'Large number',value
print 'After'
Before
Large number 41
Large number 74
After
We use an if statement in the loop to catch / filter the
values we are looking for.
Control flow tools
The for loop has the following general form.
for letter in "aeiou":
print "vowel: ", letter
for i in [1,2,3]:
print i
for i in range(0,3):
print i
for var in sequence:
statements
If a sequence contains an expression list, it is
evaluated first. Then, the first item in the sequence
is assigned to the iterating variable var. Next, the
statements are executed. Each item in the
sequence is assigned to var, and the statements
are executed until the entire sequence is
exhausted.
For loops may be nested with other control flow tools
such as while loops and if statements.
vowel: a
vowel: e
vowel: i
vowel: o
vowel: u
1
2
3
0
1
2
Example
write a program that reads in the grades
of 50 students in a course (out of 100
points each ) and then count the number
of A students ( grade > 85 ) and the
number of B students (grade > 75 ).
Count-Controlled Loop Example
Use a while loop to read the
100 blood pressures and find
their total
Example
Write a program to display all the numbers
divisible by 5 in the range 0 to 5000.
19
Example
Assume you put 1000 pounds in a projects that returns a profit of
about 5% per year. How long will it take for your money to double
?
Assume you put 5000 pounds in a projects that returns a profit of
about 10% per year. How much money will you have in 5 years ?