Tests et conditions¶

Effectuer une instruction si une condition est vérifiée

In [19]:
x = 1
if (x > 0):
    print("La valeur est strictement positive")
La valeur est strictement positive

Effectuer une instruction si une condition est vérifiée, une autre sinon

In [20]:
x = 1
if (x > 0):
    print("La valeur est strictement positive")
else:
    print("La valeur est négative ou nulle")
La valeur est strictement positive

Effectuer :

  • une instruction si une condition est vérifiée
  • une autre instruction si une autre condition est vérifiée
  • une dernière instruction si les deux premières conditions ne sont pas vérifiées
In [21]:
x = 1
if (x > 0):
    print("La valeur est strictement positive")
elif (x == 0):
    print("La valeur est nulle")
else:
    print("La valeur est négative ou nulle")
La valeur est strictement positive

Retour sur les listes¶

Autres fonctions élémentaires¶

Déclarer une liste vide

In [22]:
L = []
print(L)
[]

Parcourir les éléments d'une liste

In [23]:
L = ["a", "b", "c", "d", "e"]
n = len(L)
for i in range(n):
    print(L[i])
a
b
c
d
e
In [24]:
L = ["a", "b", "c", "d", "e"]
for x in L:
    print(x)
a
b
c
d
e

Déclaration de listes par compréhension¶

On peut déclarer une liste par compréhension. La syntaxe est la suivante :

[ <fonction de x> for x in <structure> ]

où <fonction de x> est une fonction de x et <structure> est un objet itérable (une autre liste, un itérateur).

In [25]:
L = [i for i in range(7)]
print(L)
[0, 1, 2, 3, 4, 5, 6]
In [26]:
L = [i**2 for i in range(-3, 4)]
print(L)
[9, 4, 1, 0, 1, 4, 9]
In [27]:
M = [x + 1 for x in L]
print(M)
[10, 5, 2, 1, 2, 5, 10]
In [28]:
N = [1 for i in range(10)]
print(N)
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

On peut également déclarer une liste par compréhension avec condition. La syntaxe est la suivante :

[ <fonction de x> for x in <structure> if <condition sur x> ]

où <fonction de x> est une fonction de x, <structure> est un objet itérable (une autre liste, un itérateur), et <condition sur x> est une condition sur x qui doit être vérifiée pour que l'élément soit inclus dans la liste.

In [29]:
L = [i for i in range(10) if i % 2 == 0]
print(L)
[0, 2, 4, 6, 8]
In [30]:
L = ["bonjour", "maison", "ecole",  "voiture", "telephone"]
M = [ x for x in L if len(x) == 7]
print(M)
['bonjour', 'voiture']

Commenter du code¶

Pour commenter du texte ou du code, on utilise le symbole "dièse" # que l'on place en début de commentaire.

In [31]:
# on initialise x à 36
x = 36

y = 2 * x     # on calcule le double de x

################

# z = y + 2
# z = y + 3

Savoir lire un message d'erreur¶

Erreurs de syntaxe

In [36]:
x = 0
for i in range(8)
    x += i
print x
  Input In [36]
    for i in range(8)
                     ^
SyntaxError: invalid syntax

Objet qui ne peut pas être appelé

In [37]:
L = ["a", "b", "c"]
L(1)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [37], in <module>
      1 L = ["a", "b", "c"]
----> 2 L(1)

TypeError: 'list' object is not callable

Objet qui n'existe pas

In [38]:
def ma_fonction():
    print("bonjour")
mafonction()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Input In [38], in <module>
      1 def ma_fonction():
      2     print("bonjour")
----> 3 mafonction()

NameError: name 'mafonction' is not defined

Indice de liste trop grand

In [39]:
L = ["a", "b"]
L[2]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Input In [39], in <module>
      1 L = ["a", "b"]
----> 2 L[2]

IndexError: list index out of range

Remontée d'erreurs dans des fonctions

In [40]:
def lire_troisieme_element(L):
    return L[2]
L = ["a", "b"]
lire_troisieme_element(L)
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Input In [40], in <module>
      2     return L[2]
      3 L = ["a", "b"]
----> 4 lire_troisieme_element(L)

Input In [40], in lire_troisieme_element(L)
      1 def lire_troisieme_element(L):
----> 2     return L[2]

IndexError: list index out of range

Division par zéro

In [41]:
def divise(a, b):
    return a//b

divise(1, 0)
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
Input In [41], in <module>
      1 def divise(a, b):
      2     return a//b
----> 4 divise(1, 0)

Input In [41], in divise(a, b)
      1 def divise(a, b):
----> 2     return a//b

ZeroDivisionError: integer division or modulo by zero

Boucle infinie

In [ ]:
def occurence(L, x):
    compteur = 0
    i = 0
    while i < len(L):
        if L[i] == x:
            compteur += 1
    return compteur

L = ["a", "b", "a"]
# occurence(L, "a")
In [ ]: