CodeGym /Cours /Python SELF FR /Encore un peu sur les boucles et les if

Encore un peu sur les boucles et les if

Python SELF FR
Niveau 4 , Leçon 5
Disponible

11.1 Opérateur ternaire

En Python, il existe ce qu'on appelle un opérateur ternaire, qui est en fait une version modifiée de l'opérateur if else.

Supposons que vous ayez ce code :


if a < b:
   min = a
else:
   min = b

Pour que ce code simple ne prenne pas trop de place, on a inventé une écriture compactée. Elle ressemble à ça :


min = a if a < b else b

L'aspect général de l'opérateur ternaire peut être décrit par la forme :


variable = valeur1 if condition else valeur2

Si condition est vraie, alors la variable est assignée à valeur1, si c'est faux — valeur2.

Note que les deux-points après la condition ne sont pas utilisés ici.

11.2 Opérateur else dans les boucles

En Python, l'opérateur else est souvent associé aux opérateurs conditionnels if. Cependant, son utilisation ne se limite pas à cela, et else peut également être appliqué dans les boucles for et while.

Cet aspect non intuitif de else dans le contexte des boucles peut dérouter les débutants, mais il ouvre des possibilités intéressantes pour gérer le flux d'exécution du programme.

Comment fonctionne else dans les boucles

Dans les boucles, else s'exécute après la fin de la boucle, mais uniquement si la boucle s'est terminée normalement (c'est-à-dire qu'elle n'a pas été interrompue par l'opérateur break). Cette particularité rend else utile dans les scénarios où il faut vérifier si la boucle a été interrompue prématurément.

Exemple d'utilisation dans la boucle for :


for i in range(3):
    password = input('Entrez le mot de passe : ')
    if password == 'secret':
        print('Mot de passe accepté.')
        break
else:
    print('Aucune tentative ou tous les mots de passe sont incorrects.')               

Ici, else s'exécute si l'utilisateur a saisi un mot de passe incorrect trois fois. Si l'utilisateur entre le bon mot de passe, la boucle est interrompue par break, et le bloc else ne s'exécute pas.

Exemple d'utilisation dans la boucle while :


n = 5
while n > 0:
    print(n)
    n -= 1
else:
    print('La boucle s\'est terminée normalement.')               

Dans ce cas, else s'exécute après que la boucle se soit terminée naturellement, car la condition est devenue fausse.

Utilité pratique

L'utilisation de else dans les boucles peut être particulièrement utile dans les algorithmes de recherche, où il est nécessaire de déterminer si la recherche a réussi. Par exemple, lors de la recherche d'un élément dans une liste qui n'existe pas, vous pouvez utiliser else pour afficher un message d'échec après la fin de la boucle.

Utilisez else dans les boucles de manière claire et cohérente, afin de ne pas embrouiller ceux qui liront votre code. N'oubliez pas que else dans les boucles n'est pas toujours intuitif, il est donc souhaitable d'ajouter des commentaires ou de choisir d'autres moyens de mise en œuvre de la logique si cela rend le code plus compréhensible.

11.3 Boucles imbriquées

En Python, on peut écrire une logique très complexe de manière très compacte. Pour certains cas, vous aurez besoin d'if imbriqués, et pour d'autres, de boucles imbriquées. Parlons maintenant de certains aspects de leur fonctionnement :

Une boucle imbriquée signifie qu'une boucle est présente à l'intérieur d'une autre. Cela permet, par exemple, de traiter des tableaux multidimensionnels, des listes de listes ou d'autres structures de données imbriquées.

Les boucles imbriquées se composent d'une boucle externe et d'une ou plusieurs boucles internes. Chaque fois que la boucle externe accomplit une itération, la boucle interne s'exécute entièrement :


for i in range(3):  # Boucle externe
    for j in range(3):  # Boucle interne
        print(f"({i}, {j})")               

Du point de vue de la boucle externe, la boucle interne et son contenu ne sont qu'un bloc de commandes exécutées pour chaque itération de la boucle externe. La boucle externe se moque totalement de ce qui se trouve à l'intérieur, du nombre de boucles, etc. Elle exécute simplement son bloc de commandes interne à chaque fois pour la variable de sa liste.

Imprimons une table de multiplication — les boucles imbriquées sont parfaites pour cette tâche. Créons une table de multiplication en utilisant des boucles imbriquées, où une boucle est responsable des multiplicateurs et l'autre des multiplicandes :


n = 5
for i in range(1, n + 1):
    for j in range(1, n + 1):
        print(f"{i} * {j} = {i * j}", end='\t')
    print()  # Passage à la ligne suivante pour le multiplicateur suivant               

Ce code affichera la table suivante :


1 * 1 = 1	1 * 2 = 2	1 * 3 = 3	1 * 4 = 4	1 * 5 = 5	
2 * 1 = 2	2 * 2 = 4	2 * 3 = 6	2 * 4 = 8	2 * 5 = 10	
3 * 1 = 3	3 * 2 = 6	3 * 3 = 9	3 * 4 = 12	3 * 5 = 15	
4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16	4 * 5 = 20	
5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25

Pour mieux comprendre les boucles imbriquées, il te faudra simplement pratiquer davantage — c'est le moyen le plus rapide d'acquérir une compréhension de presque n'importe quel aspect non intuitif de la programmation.

1
Опрос
Boucles et conditionnelles,  4 уровень,  5 лекция
недоступен
Boucles et conditionnelles
Boucles et conditionnelles
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION