Aller au contenu

02 Cours Conditions et boucle For

Version du cours sur Capytale

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/end en 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 !
🐍 Script Python
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')
📋 Texte
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 :

📋 Texte
if test1:
    <bloc d instructions 1>
elif test2:
    <bloc d instructions 2>
else:
    <bloc d instructions 3>

elif est la contraction de « else if »

🐍 Script Python
if True:
    print("c'est vrai !")
📋 Texte
c'est vrai !
🐍 Script Python
if False:
    print("je suis caché !")
else:
    print("mais moi je suis en pleine lumière...")
📋 Texte
mais moi je suis en pleine lumière...
🐍 Script Python
# 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")
📋 Texte
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⚓︎

🐍 Script Python
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⚓︎

🐍 Script Python
# 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()
📋 Texte
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⚓︎

🐍 Script Python
# Une liste :
L = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']
for jour in L:
    print(jour)
📋 Texte
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
Dimanche

Exemple 3⚓︎

🐍 Script Python
# Un ensemble :
L = ('Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche')
for jour in L:
    print(jour)
📋 Texte
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
Dimanche

Exemple 4⚓︎

🐍 Script Python
# Un dictionnaire :
D = {}
D['Nom'] = 'Dalton'
D['Prenom'] = 'Joe'
D['Annee'] = 2019
for cle in D:
    print(f"{cle} : {D[cle]}")
📋 Texte
Nom : Dalton
Prenom : Joe
Annee : 2019

Exemple 5⚓︎

🐍 Script Python
# 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]}")
📋 Texte
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⚓︎

🐍 Script Python
for iterateur1 in sequence1:
    for iterateur2 in sequence2:
        instructions

Exemple 6⚓︎

🐍 Script Python
for i in range(2):
    for j in range(3):
        print(f"i : {i} - j : {j}")
📋 Texte
i : 0 - j : 0
i : 0 - j : 1
i : 0 - j : 2
i : 1 - j : 0
i : 1 - j : 1
i : 1 - j : 2