Boston Python Workshop 8/Loops

For loops
Use a  loop to do something to every element in a list.

>>> names = ["Jessica", "Adam", "Liz"] >>> for name in names: ...    print(name) ... Jessica Adam Liz

>>> names = ["Jessica", "Adam", "Liz"] >>> for name in names: ...    print("Hello " + name) ... Hello Jessica Hello Adam Hello Liz

statements inside loop
>>> for name in ["Alice", "Bob", "Cassie", "Deb", "Ellen"]: ...    if name[0] in "AEIOU": ...        print(name + " starts with a vowel.") ... Alice starts with a vowel. Ellen starts with a vowel.

Building up a list
Sometimes you want to build up a new list based on information about each element in an existing list. To do this, initialize an empty list before the  loop, and append elements to the new list inside the   loop:

>>> vowel_names = [] >>> for name in ["Alice", "Bob", "Cassie", "Deb", "Ellen"]: ...    if name[0] in "AEIOU": ...        vowel_names.append(name) ... >>> print(vowel_names) ['Alice', 'Ellen']

Using a counter
Sometimes you want to keep track of the number of occurrences of something, or a running total, as you loop through a list. To do this, initialize a variable before the  loop that you update inside the   loop:

>>> prices = [1.5, 2.35, 5.99, 16.49] >>> total = 0 >>> for price in prices: ...    total = total + price ... >>> total 26.33

loops inside loops
You can put  loops inside   loops. The indentation dictates which  loop a line is in.

>>> letters = ["a", "b", "c"] >>> numbers = [1, 2, 3] >>> for letter in letters: ...    for number in numbers: ...        print(letter * number) ... a aa aaa b bb bbb c cc ccc

The order of the  loops matters. Compare the above example with this one:

>>> for number in numbers: ...    for letter in letters: ...        print(number * letter) ... a b c aa bb cc aaa bbb ccc

sorting lists
Use  to sort a list:

>>> names = ["Eliza", "Joe", "Henry", "Harriet", "Wanda", "Pat"] >>> names.sort >>> names ['Eliza', 'Harriet', 'Henry', 'Joe', 'Pat', 'Wanda']

Getting the maximum and minimum values from a list
>>> numbers = [0, 3, 10, -1] >>> max(numbers) 10 >>> min(numbers) -1

Generating a list of numbers easily with
The  function returns a list of numbers. This is handy for when you want to generate a list of numbers on the fly instead of creating the list yourself.

>>> range(5) [0, 1, 2, 3, 4]

Use  when you want to loop over a bunch of numbers in a list:

>>> numbers = range(5) >>> for number in numbers: ...    print(number * number) ... 0 1 4 9 16

We could rewrite the above example like this:

>>> for number in range(5): ...    print(number * number) ... 0 1 4 9 16

Get user input with
>>> for i in range(100): ...    input = raw_input("Please type something> ") ...    if input == "Quit": ...        print("Goodbye!") ...        break ...    else: ...        print("You said: " + input) ... Please type something> Hello You said: Hello Please type something> How are you? You said: How are you? Please type something> Quit Goodbye! >>>

&laquo; Back to the Saturday lecture page