Control Flow#
These notes follow the official python tutorial pretty closely: http://docs.python.org/3/tutorial/
To write a program, we need the ability to iterate and take action based on the values of a variable. This includes if-tests and loops.
Python uses whitespace to denote a block of code.
While loop#
A simple while loop—notice the indentation to denote the block that is part of the loop.
Here we also use the compact +=
operator: n += 1
is the same as n = n + 1
n = 0
while n < 10:
print(n)
n += 1
0
1
2
3
4
5
6
7
8
9
This was a very simple example. But often we’ll use the range()
function in this situation. Note that range()
can take a stride.
for n in range(2, 10, 2):
print(n)
2
4
6
8
if statements#
if
allows for branching. python does not have a select/case statement like some other languages, but if
, elif
, and else
can reproduce any branching functionality you might need.
x = 0
if x < 0:
print("negative")
elif x == 0:
print("zero")
else:
print("positive")
zero
Iterating over elements#
it’s easy to loop over items in a list or any iterable object. The in
operator is the key here.
alist = [1, 2.0, "three", 4]
for a in alist:
print(a)
1
2.0
three
4
for c in "this is a string":
print(c)
t
h
i
s
i
s
a
s
t
r
i
n
g
We can combine loops and if-tests to do more complex logic, like break out of the loop when you find what you’re looking for
n = 0
for a in alist:
if a == "three":
break
else:
n += 1
print(n)
2
(for that example, however, there is a simpler way)
print(alist.index("three"))
2
for dictionaries, you can also loop over the elements
my_dict = {"key1":1, "key2":2, "key3":3}
for k in my_dict:
print(f"key = {k}, value = {my_dict[k]}")
key = key1, value = 1
key = key2, value = 2
key = key3, value = 3
sometimes we want to loop over a list element and know its index – enumerate()
helps here:
for n, a in enumerate(alist):
print(n, a)
0 1
1 2.0
2 three
3 4