loops

Objectives

  • Learn what an "iterable object" is
  • Use for and while loops to iterate over ranges and strings 
  • Learn how to control exiting a loop
  • Understand what loops are and how they are useful

Print numbers 1 through 7

print(1)
1
print(2)
2
print(3)
3
print(4)
4
print(5)
5
print(6)
6
print(7)
7

That's way too much work!

We can simplify this with a for loop over a range.

for loops

In Python, for loops are written like this:

  • item references the current position of our iterator within the iterable. It will iterate over (run through) every item of the collection and then go away when it has visited all items
  • item is a new variable that can be called whatever you want
for item in iterable_object:
    # do something with item
  • An iterable object is some kind of collection of items, for instance: a list of numbers, a string of characters, a range, etc.

for loops with ranges

for number in range(1, 8):
    print(number)
1

1

2

3

4

5

6

7

2
3
4
5
6
7
          number = 1
      
          number = 2
      
          number = 3
      
          number = 4
      
          number = 5
      
          number = 6
      
          number = 7
      

Let's print numbers 1 - 7 using our knowledge of looping thru ranges.

ranges

If we just want to print numbers, we can simply iterate over a range.

A range is just a slice of the number line.

0

1

2

3

4

5

6

Python ranges come in multiple forms:

range(7) gives you integers from 0 thru 6 ( shown)

range(1, 8) will give you integers from 1 to 7

range(1, 10, 2)  will give you odds from 1 to 10

Count starts at 0 and is exclusive

Two parameters are (start, end)

Third param is called the "step", meaning how many to skip. Also, which way to count, up + or down -

range(7, 0, -1)  will give you integers from 7 to 1

REPEATER EXERCISE

How many times do I have to tell you? 3
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!

How many times do I have to tell you? 5
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!

EXERCISE

Is good for you

EXERCISE

Loop through numbers 1-20

  • for 4 and 13, print "x is unlucky"
  • for even numbers, print "x is even"
  • for odd numbers, print "x is odd"
1 is odd
2 is even
3 is odd
4 is UNLUCKY!
5 is odd
6 is even
7 is odd
8 is even
9 is odd
10 is even
11 is odd
12 is even
13 is UNLUCKY!
14 is even
15 is odd
16 is even
17 is odd
18 is even
19 is odd
20 is even

while loops

We can also iterate using a while loop, which has a different format:

while im_tired:
    # seek caffeine

while loops continue to execute while a certain condition is truthy, and will end when they become falsy.

while loops require more careful setup than for loops, since you have to specify the termination conditions manually.

Be careful! If the condition doesn't become false at some point, your loop will continue forever!

user_response = None
while user_response != "please":
    user_response = input("Ah ah ah, you didn't say the magic word: ")

while loop exercise

Print the following beautiful art using both a for loop and a while loop:

😀
😀😀
😀😀😀
😀😀😀😀
😀😀😀😀😀
😀😀😀😀😀😀
😀😀😀😀😀😀😀
😀😀😀😀😀😀😀😀
😀😀😀😀😀😀😀😀😀

print("\U0001f600")

The"Colt talking to his sister" Exercise

Hey how's it going? pretty good, you?    
pretty good, you?
hahah
hahah
ok very funny
ok very funny
stop copying me 
UGH FINE YOU WIN

repeat everything until the user says "stop copying me"

Controlled Exit

while True:
    command = input("Type 'exit' to exit: ")
    if (command == "exit"):
        break

We can also use it to end for loops early:

The keyword break gives us the ability to exit out of while loops whenever we want:

for x in range(1, 101):
    print(x)
    if x == 3:
        break
times = int(input("How many times do I have to tell you? "))

for time in range(times):
	print("CLEAN UP YOUR ROOM!")
	if time >= 4: 
		print("do you even listen anymore?")
		break
How many times do I have to tell you? 100
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!
CLEAN UP YOUR ROOM!
do you even listen anymore?

ADDING A BREAK

GUESSING GAME

MINI PROJECT

Guess a number between 1 and 10: 1
Too low, try again!
Guess a number between 1 and 10: 10
Too high, try again!
Guess a number between 1 and 10: 22
Too high, try again!
Guess a number between 1 and 10: 8
Too high, try again!
Guess a number between 1 and 10: 7
Too high, try again!
Guess a number between 1 and 10: 6
Too high, try again!
Guess a number between 1 and 10: 5
You guessed it! You won!
Do you want to keep playing? (y/n) y

GUESSING GAME

ADDING A LOOP TO ROCK PAPER SCISSORS

break

Recap

  • For loops are useful for going through iterable objects
  • While loops are more versatile but require more set up
  • Any loop can be short-circuited with the break keyword
  • Loops are sections of code that keep repeating

YOUR TURN