DEV Community

Cover image for Python : Exécution conditionnelle et boucles
 Eric Le Codeur
Eric Le Codeur

Posted on

Python : Exécution conditionnelle et boucles

Le cours accéléré Python est gratuit et sera publié ici sur dev.to. Je publierai un nouvel article tous les deux jours environ. Pour ne rien manquer, vous pouvez me suivre sur twitter : Suivez @EricLeCodeur

Exécution conditionnelle

Dans cette section nous verrons comment exécuter un bloc de code seulement si une expression est vraie.

Pour ce faire vous devez utiliser l’instruction « if » en respectant la syntaxe suivante :

if {expression}:

bloc de code à exécuter si expression est vrai
Enter fullscreen mode Exit fullscreen mode

Voici un exemple

if x == 4:
    print('x est 4')
Enter fullscreen mode Exit fullscreen mode

La première ligne représente la condition.

Les deux petits points ":" à la fin de la première ligne indique le début du bloc de code conditionel.

En python, La vérification de l’égalité entre deux valeurs doit être faite avec deux caractères égaux “==”

La deuxième ligne représente le code à exécuter si la condition est vraie.

À noter que la deuxième ligne commence par 4 espaces blanches. En Python ces espaces sont nécessaires afin d’indiquer que cette ligne fait partie du bloc de code.

Il est donc possible d’inclure plus d’une ligne à exécuter

if x == 4:
    print("x est 4")
    print("fait partie du bloc if")

print("Ne fait pas partie du bloc if")
Enter fullscreen mode Exit fullscreen mode

Seules les lignes avec 4 espaces blancs font partie du bloc du “if”

L’opérateur Not “!”

Parfois il peut être pratique d’exécuter un bloc de code seulement si l’expression n’est pas égale à une certaine valeur.

if x != 4:
    print("x n'est pas 4")
Enter fullscreen mode Exit fullscreen mode

Multiples expressions avec l’opérateur “and” et “or”

Il est possible de faire la vérification de plusieurs expressions

Voici deux exemples :

if x == 2 or x == 4:
   print("x est égale à 2 ou 4")
Enter fullscreen mode Exit fullscreen mode
if x > 2 and x < 10:
   print("x est compris entre 3 et 9")
Enter fullscreen mode Exit fullscreen mode

L’instruction “else”

Vous venez d’apprendre comment exécuter du code si une expression est vraie. Sachez qu’il est également possible d’exécuter du code si l’expression est fausse.

Voici un exemple :

if x == 4:
    print("x est 4")
else:
   print("x pas égale à 4")
Enter fullscreen mode Exit fullscreen mode

Selon le résultat de l’expression, Python va exécuter un des deux blocs de code.

L’instruction “elif”

Il peut arriver que vous ailliez plusieurs expressions à vérifier et que chaque expression doit avoir son propre bloc de code.

if x == 4:
    print("x est 4")
elif x == 6:
    print("x est 4")
else:
   print("x pas égale à 4 ni à 6")
Enter fullscreen mode Exit fullscreen mode

Expression sans opérateurs

Voici un exemple valide:

messsage = ""

if message:
    print(message)
else:
    print("Sorry, no message")
Enter fullscreen mode Exit fullscreen mode

Ici le code “if message:” ne contiens pas d’opérateur de comparaison. L’expression sera donc convertie en valeur True/False (Boolean)

Dans le dernier exemple, étant donné que la variable “message" est vide, sa valeur Boolean sera “False”. Résultat, le code print(”Sorry, no message”) sera exécuté

Voici un autre exemple

shipping_fee = 100

if shipping_fee:
    print(f"Shipping fees: {shipping_fee}")
else:
   print("Free shipping")
Enter fullscreen mode Exit fullscreen mode

Dans cet exemple, shipping_fee sera convertie en “True” car Python convertie tous les nombres qui ne sont pas égaux à 0 en “True”.

Si vous vous demandez quelle sera la valeur en Boolean d’une expression, vous pouvez utiliser la fonction bool(expression)

text_num = "0"

print(bool(text_num))
# True
Enter fullscreen mode Exit fullscreen mode

Dans cet exemple la variable est de type texte et Python convertira en “True” toutes les variables textes qui ne sont pas vides.

Il est possible d’associé directement une valeur Boolean (True/False) à une variable et ensuite de l’utiliser dans notre code.

is_active = True

if is_active:
    print("User active")
else:
    print("User inactive")
Enter fullscreen mode Exit fullscreen mode

Exécution conditionnelle avec syntaxe abrégée

Il existe une syntax abrégée qui permet d’exécuter du code conditionnel avec une seule ligne de code.

price = 100

print("C'est chers") if price > 100 else print("Pas chers")
Enter fullscreen mode Exit fullscreen mode

Le même principe peut s’appliquer pour faire une assignation conditionnelle

active_color = default_color if default_color else "blue"
Enter fullscreen mode Exit fullscreen mode

Itérations : Exécuter un bloc de code à plusieurs reprises

Parfois vous aurez besoin d’écrire plusieurs lignes de code qui peuvent sembler répétitives.

Par exemple écrire une petite application qui affiche les nombres 1 à 10

print(1)
print(2)
print(2)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)
Enter fullscreen mode Exit fullscreen mode

Bien que ce code fonctionne, il est clair que ce n’est pas du tout efficace car pour chaque ligne de code, seulement le nombre change.

Une meilleure solution serait de faire une boucle avec l’instruction “for”

L’instruction “for” permet de faire une boucle sur une séquence. Il est possible de créer une séquence avec la fonction range()

Par exemple, la fonction range(10) va créer la séquence suivante :

0 1 2 3 4 5 6 7 8 9

À noter que les séquences commencent toujours par la position zéro

Une fois la séquence créée, l’instruction “for” permet de faire une boucle et d’exécuter du code pour chaque valeur.

Voici un exemple :

for i in range(10): 
    print(i+1)
Enter fullscreen mode Exit fullscreen mode

Avec ce code on obtient le même résultat que notre premier exemple mais beaucoup plus rapide à écrire et à maintenir.

Voici un autre exemple avec une séquence un peu plus complexe

for i in range(10, 20, 2): 
    print(i)

# 10, 12, 14, 16, 18
Enter fullscreen mode Exit fullscreen mode

La fonction range() permet de spécifier trois paramètres : départ, fin et step. La valeur de départ et le step sont optionnels. Si non spécifiée, la valeur de départ sera 0 et le step sera 1.

Boucle un nombre indéterminé

Il est possible que vous ne savez pas d’avance quel sera le nombre d’itérations à effectuer. C’est pourquoi il existe en Python un autre type de boucle : l’instruction “while”

L’instruction “while” permet d’exécuter du code tant que l’expression est True

Voici un exemple :

key = ""

while key != "5":
    key = input("Enter your selection (5 = Quit): ")
Enter fullscreen mode Exit fullscreen mode

Dans cet exemple, le bloc de code sera exécuté tant et aussi longtemps que la valeur de key ne sera pas “5”.

La fonction “break” et “continue”

Il est possible de terminer une boucle immédiatement et sans que la condition soit respectée en utilisant la fonction “break()”

key = ""

while key != "5":
    key = input("Enter your selection (5 = Quit): ")
    if key == "6":
        print("Secret door")
        break
Enter fullscreen mode Exit fullscreen mode

Dans cet exemple, la fonction “break()” va terminer la boucle “while” sans exécuter aucun autre code quelle contient.

Il est également possible de sauter l’itération en cours avec la fonction “continue()”

x = 0

while x < 5:
    x += 1
    if x == 3:
        continue

    print(x)

# 1, 2, 4, 5
Enter fullscreen mode Exit fullscreen mode

Dans cet exemple, le nombre 3 ne sera jamais imprimé. La fonction “continue()” renvoie l’exécution du code à la prochaine itération sans exécuter le code restant du bloc.

Boucle dans une String

Il est possible de faire une boucle sur tous les caractères d’une String. Voici un exemple :

keycode = "abc123def"

for letter in keycode:
    print(letter)


#a
#b
#c
#1
#2
#3
#d
#e
#f
Enter fullscreen mode Exit fullscreen mode

Conclusion

C'est tout pour aujourd'hui, je publierai un nouvel article tous les deux jours environ. Pour être sûr de ne rien rater vous pouvez me suivre sur twitter : Suivre @EricLeCodeur

Latest comments (1)

Collapse
 
yoshy profile image
Yoshy

Merci pour votre article ^^ Je débute tout juste sur Python et je commence tout juste à voir le potentiel dingue.