Boston Python Workshop 8/Loops: Difference between revisions
imported>Jesstess (Created page with "__NOTOC__ == For loops == Use a <code>for</code> loop to do something to every element in a list. <pre> >>> names = ["Jessica", "Adam", "Liz"] >>> for name in names: ... ...") |
imported>Jesstess No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 8:
>>> names = ["Jessica", "Adam", "Liz"]
>>> for name in names:
... print
...
Jessica
Line 17:
>>> names = ["Jessica", "Adam", "Liz"]
>>> for name in names:
... print
...
Hello Jessica
Line 28:
>>> for name in ["Alice", "Bob", "Cassie", "Deb", "Ellen"]:
... if name[0] in "AEIOU":
... print
...
Alice starts with a vowel.
Ellen starts with a vowel.</pre>
=== 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 <code>for</code> loop, and append elements to the new list inside the <code>for</code> loop:
<pre>
Line 41 ⟶ 43:
... vowel_names.append(name)
...
>>> print
['Alice', 'Ellen']</pre>
=== 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 <code>for</code> loop that you update inside the <code>for</code> loop:
<pre>▼
>>> prices = [1.5, 2.35, 5.99, 16.49]
>>> for price in prices:
... ▼
>>> total
=== <code>for</code> loops inside <code>for</code> loops ===
Line 53 ⟶ 68:
>>> for letter in letters:
... for number in numbers:
... print
...
a
Line 70 ⟶ 85:
>>> for number in numbers:
... for letter in letters:
... print
...
a
Line 119 ⟶ 134:
>>> numbers = range(5)
>>> for number in numbers:
... print
...
0
Line 132 ⟶ 147:
<pre>
>>> for number in range(5):
... print
...
0
Line 140 ⟶ 155:
16
</pre>
▲... i = i + 1
▲...
▲9</pre>
▲<pre>
▲>>> i = 0
=== Get user input with <code>raw_input()</code> ===
<pre>
>>>
... input = raw_input("Please type something> ")
... if input == "Quit":
... print
... break
... else:
... print
...
Please type something> Hello
|
Latest revision as of 12:07, 13 July 2013
For loops
Use a for
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
if
statements inside for
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 for
loop, and append elements to the new list inside the for
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 for
loop that you update inside the for
loop:
>>> prices = [1.5, 2.35, 5.99, 16.49] >>> total = 0 >>> for price in prices: ... total = total + price ... >>> total 26.33
for
loops inside for
loops
You can put for
loops inside for
loops. The indentation dictates which for
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 for
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 .sort()
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 range()
The range()
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 range
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 raw_input()
>>> 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! >>>