Outils pour utilisateurs

Outils du site


dev:python:core:structures_de_controle

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
dev:python:core:structures_de_controle [2025/07/27 16:23] – supprimée - modification externe (Date inconnue) 127.0.0.1dev:python:core:structures_de_controle [2025/07/27 16:44] (Version actuelle) yoann
Ligne 1: Ligne 1:
 +{{tag>dev python}}
  
 +====== Structures de contrôle ======
 +
 +===== Structures conditionnelles =====
 +
 +==== if ====
 +<code python>
 +if a_condition:
 +    # bloc a exécuter lorsque a_condition est vraie
 +elif other_condition:
 +    # bloc a exécuter lorsque a condition est fausse
 +    # et other_condition est vraie
 +else:
 +    # bloc a exécuter si les conditions précédentes sont fausses.
 +</code>
 +
 +==== match et case ====
 +
 +Pour les versions **Python > 3.10**, l'équivalent de la structure bien connue switch ... case est **match** ... **case**
 +
 +<code python>
 +x = input("Indiquez votre chiffre fétiche")
 +
 +match x:
 +    case 1:
 +        print("x est égal à 1")
 +    case 2:
 +        print("x est égal à 2")
 +    case 3:
 +        print("x est égal à 3")
 +    case 4:
 +        print("x est égal à 4")
 +    case _:
 +        print("x n'est pas égal à 1, 2, 3 ou 4")
 +</code>
 +
 +
 +==== Equivalents switch-case ====
 +
 +Pour les version de Python plus anciennes, **Python < 3.10**, la structure de contrôle **match case** ou switch ... case n'existe pas. On peut la remplacer par des **if ... elseif** ou utiliser les dictionnaires.
 +
 +<code python>
 +if n == 0:
 +    print "n vaut zéro\n"
 +elif n== 1 or n == 9 or n == 4:
 +    print "n est un carré\n"
 +elif n == 2:
 +    print "n est pair\n"
 +elif  n== 3 or n == 5 or n == 7:
 +    print "n est premier\n
 +</code>
 +
 +La façon élégante et pythonienne consiste à s'appuyer sur la puissance des dictionnaires. On définit un dictionnaire ayant pour clés les différentes valeurs que peut prendre variable utilisée normalement dans le case et pour valeur respective la fonction de traitement.
 +
 +<code python>
 +options = {0 : zero,
 +                1 : sqr,
 +                4 : sqr,
 +                9 : sqr,
 +                2 : even,
 +                3 : prime,
 +                5 : prime,
 +                7 : prime,
 +}
 + 
 +def zero():
 +    print "You typed zero.\n"
 + 
 +def sqr():
 +    print "n is a perfect square\n"
 + 
 +def even():
 +    print "n is an even number\n"
 + 
 +def prime():
 +    print "n is a prime number\n"
 +</code>
 +
 +Une fois définit il suffit
 +<code python>
 +options[num]()
 +</code>
 +
 +
 +===== Les boucles =====
 +
 +==== Boucle for ====
 +
 +Exécuter un bloc d'instructions un nombre déterminé de fois. Pour traiter les éléments d'une liste ou un nombre connu d'éléments:
 + 
 +<code python>
 +for i in range(10):
 +    print i
 +</code>
 +
 +==== Boucle while ====
 +
 +Exécution du bloc d'instructions tant que la condition est vraie
 +
 +<code python>
 +while ma_condition == True:
 +    instruction 1
 +    instruction 2
 +    ...
 +    instruction n
 +</code>
 +
 +===== Equivalent do while =====
 +
 +La boucle do while présente dans certains langages n'existe pas en Python. On construit son équivalent à partir de la boule while:
 +
 +Boucle do while en C
 +<code c>
 +do
 +{
 +   instruction 1
 +   instruction n
 +}
 +while(condition)
 +</code>
 +
 +Equivalent do while en Python:
 +<code python>
 +while True:
 +    instruction 1
 +    instruction n
 +    if not condition:
 +      break
 +</code>
 +
 +
 +
 +===== Références =====
 +
 +  * https://en.wikipedia.org/wiki/Do_while_loop#Python
 +  * https://bytebaker.com/2008/11/03/switch-case-statement-in-python/
 +  * [[https://www.flallemand.fr/blog/posts/python_match/|L'instruction match (blog)]]
 +  * [[https://www.freecodecamp.org/news/python-switch-statement-switch-case-example/|Exemples switch-case en Python (freecodecamp.org)]]