8. Structures de contrôle

8.1. Algèbre booleenne standard

[],{}, 0, False, None -> False

==, !=, <, <=, >, >=

and, or

8.1.1. is

is checke que les objets sont les mêmes

>>> a = 1
>>> b = 1
>>> a == b
True
>>> a is b
True

mais

>>> a = ["e"]
>>> b = ["e"]
>>> a==b
True
>>> a is b
False

8.2. Branchements

8.2.1. if

>>> if n == 10:
...     print 'dix'

Attention [], {}, 0 != None

>>> if l != []: #pas bien
>>> if l: #bien

>>> if l == {}:
>>> if not l:

>>> if var is None:
>>> if var is not None:

8.2.2. else

>>> if n == 10:
...     print 'dix'
... else:
...     print 'inf ou egal a 5'

8.2.3. elif

>>> if n > 5:
...     print 'sup a 5'
... elif n < 5:
...     print 'inf a 5'
... else:

8.2.4. assignation conditionnelle

>>> var = val1 if condition else val2

8.3. loop

8.3.1. for

>>> for i in range(10):
    print i

8.3.1.1. Parcourir une liste

>>> l = ['a', 'b', 'c']
>>> for i in l:
...     print i
...
a
b
c

8.3.1.2. avec index

>>> for index, value in enumerate(l):
...     print index, value
...
0 a
1 b
2 c

ça marche avec les listes et les strings

8.3.1.3. sortie de loop

>>> for i in l:
...     print i
...     if i == 'b':
...             break
...
a
b

8.3.1.4. for .. else

>>> for i in xrange(10):
...     if i == 20:
...             print '20'
...             break
... else:
...     print 'pas trouve'

8.3.2. loop sur plusieurs éléments

>>> t = (('john', 'doe'), ('jean', 'dupont'), ('corinne', 'martin'))
>>> for first_name, last_name in t:
...     print (first_name, last_name)
...
('john', 'doe')
('jean', 'dupont')
('corinne', 'martin')

8.3.3. loop sur dict

d = {'city': 'toulon', 'first_name': 'john', 'last_name': 'doe'}
>>> for k, v in d.items():
...     print (k, v)
...
city toulon
first_name john
last_name doe

8.3.4. while

   >>> x = 1
   >>> while x <= 5:
   ...     print x
   ...     x += 1
   ...
   1
   2
   3
   4
   5

Licence: CC-BY Providenz