Boston Python Workshop 8/Loops: Difference between revisions

From OpenHatch wiki
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 name
... 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 "Hello " + name
... 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 name + " starts with a vowel."
... 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 vowel_names
>>> 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 letter * number
... 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 number * letter
... print(number * letter)
...
...
a
a
Line 119: Line 119:
>>> numbers = range(5)
>>> numbers = range(5)
>>> for number in numbers:
>>> for number in numbers:
... print number * number
... print(number * number)
...
...
0
0
Line 132: Line 132:
<pre>
<pre>
>>> for number in range(5):
>>> for number in range(5):
... print number * number
... 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

Useful functions related to lists and for loops

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!
>>> 

« Back to the Saturday lecture page