# Python Introduction: Control Flow¶

for loops in Python always iterate over something list-like:

In [2]:
for i in range(10):

print(i)

0
1
2
3
4
5
6
7
8
9


Note that Python does block-structuring by leading spaces.

Also note the trailing ":".

if/else are as you would expect them to be:

In [3]:
for i in range(10):
if i % 3 == 0:
print("{0} is divisible by 3".format(i))
else:
print("{0} is not divisible by 3".format(i))

0 is divisible by 3
1 is not divisible by 3
2 is not divisible by 3
3 is divisible by 3
4 is not divisible by 3
5 is not divisible by 3
6 is divisible by 3
7 is not divisible by 3
8 is not divisible by 3
9 is divisible by 3


while loops exist too:

In [5]:
i = 0
while True:
i += 1
if i**3 + i**2 + i + 1 == 3616:
break

print("SOLUTION:", i)

SOLUTION: 15


Building lists by hand can be a little long. For example, build a list of the squares of integers below 50 divisible by 7:

In [6]:
mylist = []

for i in range(50):

if i % 7 == 0:

mylist.append(i**2)

In [7]:
mylist

Out[7]:
[0, 49, 196, 441, 784, 1225, 1764, 2401]

Python has a something called list comprehension:

In [8]:
mylist = [i**2 for i in range(50) if i % 7 == 0]

In [9]:
mylist

Out[9]:
[0, 49, 196, 441, 784, 1225, 1764, 2401]