CS 125 Lecture 11

The For Statement

>>> days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
>>> for d in days:
...     print(d)
... 
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

This is a for statement or for loop.

The body of the loop, print(d) is executed once for each item in the list days. Each time it is executed, an item from days is substituted for d.

>>> for d in days:
...     print(d[0:3])
... 
Sun
Mon
Tue
Wed
Thu
Fri
Sat

Range

range(n) produces the numbers from 0 to n - 1 one after another.

>>> for i in range(7):
...     print(i)
... 
0
1
2
3
4
5
6
>>> for i in range(7):
...     print("Day {} is {}.".format(i, days[i])
... 
... )
... 
Day 0 is Sunday.
Day 1 is Monday.
Day 2 is Tuesday.
Day 3 is Wednesday.
Day 4 is Thursday.
Day 5 is Friday.
Day 6 is Saturday.

Getting a List from Range

Range produces a range object. Use the list function to produce an actual list of numbers.

>>> range(10)
range(0, 10)
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(4, 12))
[4, 5, 6, 7, 8, 9, 10, 11]
>>> list(range(4, 12, 3))
[4, 7, 10]

Processing Parallel Lists

>>> ages = [19, 17, 18, 21]
>>> for i in range(4):
...     print("{} is {} years old.".format(persons[i], ages[i]))
... 
alice is 19 years old.
bob is 17 years old.
>>> for i in range(5):
...     for j in range(5):
...         print(j, end=" ")
...     print()
... 
carol is 18 years old.
ted is 21 years old.

Nested Loops

0 1 2 3 4 
0 1 2 3 4 
0 1 2 3 4 
0 1 2 3 4 
0 1 2 3 4 
>>> for i in range(5):
...     for j in range(5):
...         print(i, end=" ")
...     print()
... 
0 0 0 0 0 
1 1 1 1 1 
2 2 2 2 2 
3 3 3 3 3 
4 4 4 4 4 
>>> for i in range(5):
...     for j in range(5):
...         print(i + j, end=" ")
...     print()
... 
0 1 2 3 4 
1 2 3 4 5 
2 3 4 5 6 
3 4 5 6 7 
4 5 6 7 8 
>>> for i in range(1, 6):
...     for j in range(1, i + 1):
...         print(i + j, end=" ")
...     print()
... 
2 
3 4 
4 5 6 
5 6 7 8 
6 7 8 9 10 
>>> for i in range(21):
...     print("{:2}! = {}".format(i, math.factorial(i)))
... 
 0! = 1
 1! = 1
 2! = 2
 3! = 6
 4! = 24
 5! = 120
 6! = 720
 7! = 5040
 8! = 40320
 9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
17! = 355687428096000
18! = 6402373705728000
19! = 121645100408832000
20! = 2432902008176640000
>>> for i in range(8):
...     for j in range(i + 1):
...         print("{:8}".format(math.comb(i, j)), end="")
...     print()
... 
       1
       1       1
       1       2       1
       1       3       3       1
       1       4       6       4       1
       1       5      10      10       5       1
       1       6      15      20      15       6       1
       1       7      21      35      35      21       7       1