Presentation is loading. Please wait.

Presentation is loading. Please wait.

While Loops in Python.

Similar presentations


Presentation on theme: "While Loops in Python."— Presentation transcript:

1 While Loops in Python

2 A bit unfinished business with for loops …

3 Two kinds of for loops sum = 0 sum = 0 for x in aList: for i in :
Element-based Loops Index-based Loops sum = 0 for x in aList: sum += x sum = 0 for i in : sum += ask for two parts of the index-based loop! why is this the egocentric loop? Because we usually use the variable 'i'. Ha ha. Bad humor, indeed! i 1 2 aList = [ 42, -5, 10 ] aList = [ 42, -5, 10 ] x

4 Two kinds of for loops sum = 0 for x in aList: sum += x sum = 0
Element-based Loops Index-based Loops sum = 0 for x in aList: sum += x sum = 0 for i in range(len(aList)): sum += aList[i] i 1 2 aList = [ 42, -5, 10 ] aList = [ 42, -5, 10 ] x aList[i]

5 Run loopindex.py

6 Python ‘for’ loop works well for a collection of known items
Python ‘for’ loop works well for a collection of known items. That is, we know the count, or we know the list of items. But what if we don’t know the count, or the list, rather we only know the condition to repeat (or not to repeat) the steps? For example, we want to repeat adding to a sum as long as the user input is a positive number.

7 Here is a problem to solve:
The user types in a sequence of positive integers. The program is to add up the integers. The user signals the end of the input by entering a non-positive value which should not be part of the sum. sum = 0 v = int( input( ‘Enter a positive integer ( <= 0 to stop) : ‘)) while ( v > 0): sum = sum + v print( ‘Summation is : ‘, sum )

8 while loops: indefinite, conditional iteration
while <condition>: <body> while loops: indefinite, conditional iteration x = 10 if x != 0: print(x) x = x – 1 What are printed on the screen? Python loops: definite (for loops) and indefinite (while loops) While loops have the structure: while <condition>: <body> the <condition> must be a Boolean expression (something that evaluates to true or false) and the <body> can have multiple statements (including if statements, more while loops, etc.) 10 9

9 while loops: indefinite, conditional iteration
while <condition>: <body> x = 10 while x != 0: print(x) x = x – 1 What is the last value printed on the screen? a) 0 b) 1 c) 9 d) 10 Python loops: definite (for loops) and indefinite (while loops) While loops have the structure: while <condition>: <body> the <condition> must be a Boolean expression (something that evaluates to true or false) and the <body> can have multiple statements (including if statements, more while loops, etc.)

10 Patterns of while loop while <condition>: <body>
Prime the condition. while <condition>: <body> <update condition> Check the condition. Update the condition. x = 10 while x != 0: print(x) x = x – 1 From logical point of view, a while loop must have three components. Prime the condition; [before] Check the condition; [in] Update the condition. [in] Missing any of the three likely makes the loop incorrect.

11 Extreme Looping What does this code do? print('It keeps on')
while True: print('going and') print('Phew! I\'m done!')

12 Extreme Looping Anatomy of a while loop: print('It keeps on')
while True: print('going and') print('Phew! I\'m done!') the loop keeps on running as long as this test is True “while” loop use 1==1 use cs in physics This won't print until the while loop finishes - In this case, it never prints! alternative tests?

13 Will the same thing appear every time this is run?
Making our escape! Will the same thing appear every time this is run? import random escape = 0 while escape != 42: print('Help! Let me out!') escape = random.choice([41,42,43]) print('At last!')

14 Count the iterations… import random escape = 0 while escape != 42:
What modifications do we need to make to count the number of iterations and report it? import random escape = 0 while escape != 42: print('Help! Let me out!') escape = random.choice([41,42,43]) print('At last!') count = 0 before the loop count += 1 inside the loop print out the count after the loop Make it harder by creating more choices? Allow an escape every nth iteration? Etc. how could we make it easier/harder to escape?

15 Count the iterations… import random escape = 0 count = 0
What modifications do we need to make to count the number of iterations and report it? import random escape = 0 count = 0 while escape != 42: count += 1 print('Help! Let me out!') escape = random.choice([41,42,43]) print('At last!') count = 0 before the loop count += 1 inside the loop print out the count after the loop Make it harder by creating more choices? Allow an escape every nth iteration? Etc. how could we make it easier/harder to escape? Try out escape.py

16 while we're here… x = 39 while x < 44: if x % 2 == 0: print(x)
What numbers will this loop print out? x = 39 while x < 44: if x % 2 == 0: print(x) x += 1 Be sure to point out the shortcut assignment You can simulate any for loop with a while loop for i in range(n): <body of loop> is the same as i=0 while i < n: i = i+1 #what happens if this line is omitted? You're whiling away my time...

17 Exercises Write a for loop to print the first n values of multiple of 3 Write a while loop that takes a collection of positive integers and computes the sum. The loop stops when a zero or negative number is entered. Compute and print the sum and average of this collection of numbers.


Download ppt "While Loops in Python."

Similar presentations


Ads by Google