Both for loops and while loops are repetion structures in Python.
For loops are an example of definite iteration: run a section of code a specific number of times
While loops are an example of indfinite iteration: run a section of code any number of times
For loops are useful when you want to run a section of code a specific number of times
print('ENGR114')
print('ENGR114')
print('ENGR114')
ENGR114 ENGR114 ENGR114
Python's syntax for for loops:
for <var> in <interable>:
<code>
Python's range() function
range(start, stop, step)
print(range(0,4,1)) # will output 0, 1, 2, 3
range(0, 4)
# use range to output even numbers 2 to 10
range(2,12,2)
range(2, 12, 2)
range(3) # default start = 0, default step = 1
range(0, 3)
for i in range(3):
print('ENGR114')
ENGR114 ENGR114 ENGR114
for i in range(5):
print('ENGR114')
ENGR114 ENGR114 ENGR114 ENGR114 ENGR114
# count from 1 to 5 using a for loop
for i in range(1,6): # default count=1
print(i)
1 2 3 4 5
# count from 2 to 10 by 2's using a for loop
for i in range(2,12,2):
print(i)
2 4 6 8 10
# make a count down timer that counts 5-4-3-2-1 blast off!
import time
for i in range(5,0,-1):
print(i)
time.sleep(1) # wait 1 second
print('blast off!')
5 4 3 2 1 blast off!
values = ['ENGR114', 5.5, True]
for value in values:
print(value)
ENGR114 5.5 True
### For loops with strings
letters = 'Problem Solving'
for letter in letters:
print(letter)
P r o b l e m S o l v i n g
Sometimes it is useful to know the number element or the location of a value when you are interating through a list or string of values using a for loop
months = ['Jan','Feb','Mar']
for month in months:
print(month)
Jan Feb Mar
months = ['Jan','Feb','Mar']
for i, month in enumerate(months):
print(f' Number {i+1} is month: {month}')
Number 1 is month: Jan Number 2 is month: Feb Number 3 is month: Mar
letters = 'abcdefg'
for n, letter in enumerate(letters):
print(f'number {n} is letter {letter}')
number 0 is letter a number 1 is letter b number 2 is letter c number 3 is letter d number 4 is letter e number 5 is letter f number 6 is letter g
letters = 'abcdefg'
n = 0
for letter in letters:
print(f'number {n} is letter {letter}')
n = n + 1
number 0 is letter a number 1 is letter b number 2 is letter c number 3 is letter d number 4 is letter e number 5 is letter f number 6 is letter g
# run an outer loop twice, run an inner loops 3 times
for i_outer in range(2):
for i_inner in range(3):
print(f'outer loop run {i_outer}, inner loop run {i_inner}')
outer loop run 0, inner loop run 0 outer loop run 0, inner loop run 1 outer loop run 0, inner loop run 2 outer loop run 1, inner loop run 0 outer loop run 1, inner loop run 1 outer loop run 1, inner loop run 2
# count up to 5, but when we hit 3, stop counting
for i in range(1,6):
print(i)
if i == 3:
break
print('loop ended')
1 2 3 loop ended
# count up to 5, but leave out the number 3
for i in range(1,6):
print('this iteration of the loops is starting')
if i == 3:
continue
print(i)
print('this iteration of the loop is complete')
print('All iterations of the loop are done')
this iteration of the loops is starting 1 this iteration of the loop is complete this iteration of the loops is starting 2 this iteration of the loop is complete this iteration of the loops is starting this iteration of the loops is starting 4 this iteration of the loop is complete this iteration of the loops is starting 5 this iteration of the loop is complete All iterations of the loop are done
i
be defined before the loop starts?¶i = 40
for i in range(3):
print(i)
0 1 2
limit = 20
for i in range(limit):
print(i)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# print out 1 to 22
for i in range(1,23):
print(i)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
# print out 1 to 22, if number is divisible by 3, print buzz instead of the number
for i in range(1,23):
if i % 3 == 0:
print('fizz')
else:
print(i)
1 2 fizz 4 5 fizz 7 8 fizz 10 11 fizz 13 14 fizz 16 17 fizz 19 20 fizz 22
# print out 1 to 22, if number is divisible by 3, print fizz, if number divisible by 5, print buzz otherwise print the number
for i in range(1,23):
if i % 3 == 0:
print('fizz')
elif i % 5 == 0:
print('buzz')
else:
print(i)
1 2 fizz 4 buzz fizz 7 8 fizz buzz 11 fizz 13 14 fizz 16 17 fizz 19 buzz fizz 22
# count 1 to 22, fizz if divisible by 3, buzz if divisible by 5, fizz buzz if divisible by both 3 and 5, otherwise print number
for i in range(1,23):
if i % 3 == 0 and i % 5 == 0:
print('fizz buzz')
elif i % 3 == 0:
print('fizz')
elif i % 5 == 0:
print('buzz')
else:
print(i)
1 2 fizz 4 buzz fizz 7 8 fizz buzz 11 fizz 13 14 fizz buzz 16 17 fizz 19 buzz fizz 22