02 Cours Conditions et boucle For
La mise en page comme syntaxe⚓︎
- La mise en page est importante en Python, c’est une différence majeure avec les autres langages (Java, C++, etc.)
- Python utilise l’indentation du code avec des caractères blancs plutôt que des mots clés
(
begin/enden pascal) ou des symboles ({}en java et C++). Cela permet de rendre le code plus compact. - Elle sert a délimiter des blocs de code sur lesquels les structures de contrôle comme les boucles ou les tests de conditions s’appliquent.
- Dans les autres langages, on indente aussi le code mais pour l’aspect visuel et la lisibilité.
-
L’indentation faisant partie de la syntaxe du langage, il faut être rigoureux et suivre la règle suivante :
- quatre espaces pour passer au niveau suivant ;
- éviter les tabulations et préférer les espaces et surtout ne pas mélanger espaces et tabulations !
if True:
print("toutes")
print("les")
print("lignes")
print("au même niveau d'indentation forment un bloc de code")
print('et quand on remonte, on "termine" un bloc de code')
if False:
print("toutes")
print("les")
print("lignes")
print("au même niveau d'indentation forment un bloc de code")
print('on passe le False et on "termine" un bloc de code')
toutes
les
lignes
au même niveau d'indentation forment un bloc de code
et quand on remonte, on "termine" un bloc de code
on passe le False et on "termine" un bloc de code
Tests conditionnels⚓︎
Les instructions if / elif / else permettent d’exécuter des blocs d’instructions en fonction de conditions :
if test1:
<bloc d instructions 1>
elif test2:
<bloc d instructions 2>
else:
<bloc d instructions 3>
elif est la contraction de « else if »
if True:
print("c'est vrai !")
c'est vrai !
if False:
print("je suis caché !")
else:
print("mais moi je suis en pleine lumière...")
mais moi je suis en pleine lumière...
# Pour cet exemple, on itère sur les éléments d'un tuple
for position in 2, 9, 3, 1, 8:
if position == 1:
print(position, "Or")
elif position == 2:
print(position, "Argent")
elif position == 3:
print(position, "Bronze")
else:
print(position, "Vestiaires")
2 Argent
9 Vestiaires
3 Bronze
1 Or
8 Vestiaires
Boucle FOR⚓︎
Les boucles for sont des boucles "bornées" : sauf cas particulier, on sait d'avance combien on va exécuter de tours de boucles.
En langage Python, le for est utilisé pour parcourir un à un les éléments d'une séquence (liste, chaîne de caractères, tableau, tuple, etc.).
Dans d'autres langages, il peut exister des syntaxes du style for(i = 0; i < n; i++) où l'on ne parcourt pas une séquence, mais on itère un entier (i) avec une borne (n). En Python, cette syntaxe n'existe pas. Le for de Python est plutôt similaire à foreach (pour chaque élément de la séquence) dans d'autres langages de programmation.
Syntaxe⚓︎
for iterateur in sequence:
instructions
utilisation de range()⚓︎
Une utilisation classique est de prendre comme séquence le résultat de la fonction range().
Exemple 1⚓︎
# range(fin) contient les entiers de 0 à (fin - 1)
for i in range(5):
print(i, end=" ")
print()
# range(debut, fin) contient les entiers de debut à (fin - 1)
for i in range(2, 5):
print(i, end=" ")
print()
# range(debut, fin, pas) contient les entiers de debut à (fin - 1) en sautant de pas en pas
for i in range(1, 11, 2):
print(i, end=" ")
print()
0 1 2 3 4
2 3 4
1 3 5 7 9
Autres séquences⚓︎
La séquence peut aussi être une liste, un ensemble, un tuple, un dictionnaire, une chaine de caractères, un fichier...
Exemple 2⚓︎
# Une liste :
L = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']
for jour in L:
print(jour)
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
Dimanche
Exemple 3⚓︎
# Un ensemble :
L = ('Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche')
for jour in L:
print(jour)
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
Dimanche
Exemple 4⚓︎
# Un dictionnaire :
D = {}
D['Nom'] = 'Dalton'
D['Prenom'] = 'Joe'
D['Annee'] = 2019
for cle in D:
print(f"{cle} : {D[cle]}")
Nom : Dalton
Prenom : Joe
Annee : 2019
Exemple 5⚓︎
# Une chaîne de caractères :
msg = 'Bonjour'
for lettre in msg:
print(lettre)
print('-------------')
for i in range(len(msg)):
print(f"{i} : {msg[i]}")
B
o
n
j
o
u
r
-------------
0 : B
1 : o
2 : n
3 : j
4 : o
5 : u
6 : r
Boucles imbriquées⚓︎
Python permet d’utiliser une boucle dans une autre boucle (boucles imbriquées).
Syntaxe⚓︎
for iterateur1 in sequence1:
for iterateur2 in sequence2:
instructions
Exemple 6⚓︎
for i in range(2):
for j in range(3):
print(f"i : {i} - j : {j}")
i : 0 - j : 0
i : 0 - j : 1
i : 0 - j : 2
i : 1 - j : 0
i : 1 - j : 1
i : 1 - j : 2