Boston Python Workshop 8/Loops: Difference between revisions
Content added Content deleted
imported>Jesstess No edit summary |
imported>Jesstess No edit summary |
||
Line 8: | Line 8: | ||
>>> names = ["Jessica", "Adam", "Liz"] |
>>> names = ["Jessica", "Adam", "Liz"] |
||
>>> for name in names: |
>>> for name in names: |
||
... print |
... print(name) |
||
... |
... |
||
Jessica |
Jessica |
||
Line 17: | Line 17: | ||
>>> names = ["Jessica", "Adam", "Liz"] |
>>> names = ["Jessica", "Adam", "Liz"] |
||
>>> for name in names: |
>>> for name in names: |
||
... print |
... print("Hello " + name) |
||
... |
... |
||
Hello Jessica |
Hello Jessica |
||
Line 28: | Line 28: | ||
>>> for name in ["Alice", "Bob", "Cassie", "Deb", "Ellen"]: |
>>> for name in ["Alice", "Bob", "Cassie", "Deb", "Ellen"]: |
||
... if name[0] in "AEIOU": |
... if name[0] in "AEIOU": |
||
... print |
... print(name + " starts with a vowel.") |
||
... |
... |
||
Alice starts with a vowel. |
Alice starts with a vowel. |
||
Line 41: | Line 41: | ||
... vowel_names.append(name) |
... vowel_names.append(name) |
||
... |
... |
||
>>> print |
>>> print(vowel_names) |
||
['Alice', 'Ellen']</pre> |
['Alice', 'Ellen']</pre> |
||
Line 53: | Line 53: | ||
>>> for letter in letters: |
>>> for letter in letters: |
||
... for number in numbers: |
... for number in numbers: |
||
... print |
... print(letter * number) |
||
... |
... |
||
a |
a |
||
Line 70: | Line 70: | ||
>>> for number in numbers: |
>>> for number in numbers: |
||
... for letter in letters: |
... for letter in letters: |
||
... print |
... print(number * letter) |
||
... |
... |
||
a |
a |
||
Line 119: | Line 119: | ||
>>> numbers = range(5) |
>>> numbers = range(5) |
||
>>> for number in numbers: |
>>> for number in numbers: |
||
... print |
... print(number * number) |
||
... |
... |
||
0 |
0 |
||
Line 132: | Line 132: | ||
<pre> |
<pre> |
||
>>> for number in range(5): |
>>> for number in range(5): |
||
... print |
... print(number * number) |
||
... |
... |
||
0 |
0 |
Revision as of 11:50, 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.
Sometimes you want to start with a new empty list, and only add to that list if some condition is true:
>>> vowel_names = [] >>> for name in ["Alice", "Bob", "Cassie", "Deb", "Ellen"]: ... if name[0] in "AEIOU": ... vowel_names.append(name) ... >>> print(vowel_names) ['Alice', 'Ellen']
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! >>>