Instructions de boucle Python3

Ce chapitre présentera l'utilisation des instructions de boucle en Python.

Les instructions de boucle en Python sont for et while.

Le diagramme de structure de contrôle des instructions de boucle en Python est le suivant :

Mots-clés et méthodes de contrôle de boucle

Contrôle de boucle
Mot-clé / Fonction Description Exemple
for Boucle itérative, utilisée pour parcourir des séquences ou des objets itérables for i in list:
while Boucle conditionnelle, continue à s'exécuter tant que la condition est True while x > 0:
break Termine immédiatement la boucle actuelle break
continue Ignore le code restant de cette boucle et passe à l'itération suivante continue
else (loop) Exécuté lorsque la boucle se termine normalement (non interrompue par break) for i in range(3): ... else: ...
pass Instruction factice dans une boucle (aucune opération) for i in range(5): pass
range() Génère des séquences d'entiers, souvent utilisée avec les boucles for range(0, 5)
enumerate() Obtient l'index et la valeur simultanément lors de l'itération for i, v in enumerate(list):

Boucle while

La forme générale de l'instruction while en Python :

while 判断条件(condition):
    执行语句(statements)……

L'organigramme d'exécution est le suivant :

Démonstration GIF de l'exécution :

Faites également attention aux deux-points et à l'indentation. De plus, il n'y a pas de boucle do..while en Python.

L'exemple suivant utilise while pour calculer la somme de 1 à 100 :

Exemple

#!/usr/bin/env python3 n = 100 sum = 0 counter = 1 while counter <= n: sum = sum + counter counter += 1 print("La somme de 1 à %d est : %d" % (n,sum))

Le résultat de l'exécution est le suivant :

1 到 100 之和为: 5050

Boucle infinie

Nous pouvons implémenter une boucle infinie en faisant en sorte que l'expression conditionnelle ne soit jamais fausse, comme dans l'exemple suivant :

Exemple

#!/usr/bin/python3 var = 1 while var == 1 : # L'expression est toujours vraie num = int(input("Entrez un nombre :")) print ("Le nombre que vous avez saisi est :", num) print ("Au revoir !")

Après avoir exécuté le script ci-dessus, le résultat de sortie est le suivant :

输入一个数字  :5
你输入的数字是:  5
输入一个数字  :

Vous pouvez utiliser CTRL+Cpour quitter la boucle infinie actuelle.

Les boucles infinies sont très utiles pour les requêtes en temps réel des clients sur les serveurs.

Boucle while avec l'instruction else

Si l'instruction de condition après while est fausse, le bloc d'instructions else est exécuté.

Le format de la syntaxe est le suivant :

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>

Si la condition expr est vraie, le bloc d'instruction(s) est exécuté ; si elle est fausse, additional_statement(s) est exécuté.

Boucle pour afficher des nombres et comparer leurs tailles :

Exemple

#!/usr/bin/python3 count = 0 while count < 5: print (count, "inférieur à 5") count = count + 1 else: print (count, "supérieur ou égal à 5")

Après avoir exécuté le script ci-dessus, le résultat de sortie est le suivant :

0  小于 5
1  小于 5
2  小于 5
3  小于 5
4  小于 5
5  大于或等于 5

Groupe d'instructions simples

Semblable à la syntaxe de l'instruction if, si le corps de votre boucle while ne contient qu'une seule instruction, vous pouvez écrire cette instruction sur la même ligne que le while, comme montré ci-dessous :

Exemple

#!/usr/bin/python flag = 1 while (flag): print ('Bienvenue sur Example Tutorial !') print ("Au revoir !")

Remarque :Vous pouvez utiliser CTRL+C pour interrompre la boucle infinie ci-dessus.

Après avoir exécuté le script ci-dessus, le résultat de sortie est le suivant :

Welcome to Example Tutorial!
Welcome to Example Tutorial!
Welcome to Example Tutorial!
Welcome to Example Tutorial!
Welcome to Example Tutorial!
……

Instruction for

La boucle for de Python peut parcourir tout objet itérable, tel qu'une liste ou une chaîne de caractères.

Le format général de la boucle for est le suivant :

for <variable> in <séquence>: <instructions> else: <instructions>

Organigramme :

Exemple de boucle for en Python :

Exemple

#!/usr/bin/python3 sites = ["Baidu", "Google","Exemple","Taobao"] for site in sites: print(site)

Le résultat de sortie de l'exécution du code ci-dessus est :

Baidu
Google
Example
Taobao

Il peut également être utilisé pour afficher chaque caractère d'une chaîne :

Exemple

#!/usr/bin/python3 word = 'example' for letter in word: print(letter)

Le résultat de sortie de l'exécution du code ci-dessus est :

r
u
n
o
o
b

Les valeurs de plage d'entiers peuvent être utilisées avec la fonction range() :

Exemple

#!/usr/bin/python3 # Tous les nombres de 1 à 5 : for number in range(1, 6): print(nombre)

Le résultat de sortie de l'exécution du code ci-dessus est :

1
2
3
4
5

for...else

En Python, l'instruction for...else est utilisée pour exécuter un bloc de code après la fin de la boucle.

Le format de la syntaxe est le suivant :

for item in iterable:
    # 循环主体
else:
    # 循环结束后执行的代码

Lorsque la boucle a terminé son exécution (c'est-à-dire après que tous les éléments de l'itérable ont été parcourus), le code de la clause else sera exécuté. Si une instruction break est rencontrée pendant la boucle, la boucle sera interrompue et la clause else ne sera pas exécutée à ce moment-là.

Exemple

for x in range(6):
  print(x)
else:
  print("Enfin terminé !")

Après l'exécution du script, le résultat de sortie est :

0
1
2
3
4
5
Finally finished!

L'exemple for suivant utilise l'instruction break. L'instruction break sert à sortir du corps de la boucle actuel, et la clause else ne sera pas exécutée :

Exemple

#!/usr/bin/python3 sites = ["Baidu", "Google","Exemple","Taobao"] for site in sites: if site == "Exemple": print("Tutoriel d'exemple !") break print("Données de boucle" + site) else: print("Aucune donnée de boucle !") print("Boucle terminée !")

Après avoir exécuté le script, lorsque la boucle atteint "Example", elle sortira du corps de la boucle :

循环数据 Baidu
循环数据 Google
Example!
完成循环!

Fonction range()

Si vous devez parcourir une séquence de nombres, vous pouvez utiliser la fonction intégrée range(). Elle générera une séquence de nombres, par exemple :

Exemple

>>>for i in range(5): ... print(i) ... 0 1 2 3 4

Vous pouvez également utiliser range() pour spécifier des valeurs dans un intervalle :

Exemple

>>>for i in range(5,9) : print(i) 5 6 7 8 >>>

Vous pouvez également faire commencer range() à un nombre spécifié et spécifier un incrément différent (qui peut même être négatif, parfois aussi appelé « pas ») :

Exemple

>>>for i in range(0, 10, 3) : print(i) 0 3 6 9 >>>

Nombres négatifs :

Exemple

>>>for i in range(-10, -100, -30) : print(i) -10 -40 -70 >>>

Vous pouvez combiner les fonctions range() et len() pour parcourir les indices d'une séquence, comme montré ci-dessous :

Exemple

>>>a = ['Google', 'Baidu', 'Example', 'Taobao', 'QQ'] >>> for i in range(len(a)): ... print(i, a[i]) ... 0 Google 1 Baidu 2 Example 3 Taobao 4 QQ >>>

Vous pouvez également utiliser la fonction range() pour créer une liste :

Exemple

>>>list(range(5)) [0, 1, 2, 3, 4] >>>

Pour plus d'informations sur l'utilisation de la fonction range(), consultez:https://www.example.com/python3/python3-func-range.html


Instructions break et continue et clauses else dans les boucles

Organigramme d'exécution de break:

Organigramme d'exécution de continue:

Processus d'exécution du code de l'instruction while:

Processus d'exécution du code de l'instruction for:

breakL'instruction break peut sortir des corps de boucle for et while. Si vous quittez une boucle for ou while, tout bloc else de boucle correspondant ne sera pas exécuté.

continueL'instruction continue est utilisée pour dire à Python d'ignorer les instructions restantes dans le bloc de boucle actuel, puis de passer au tour suivant de la boucle.

Exemple

Utilisation de break dans while:

Exemple

n = 5
while n > 0:
    n -= 1
    if n == 2:
        break
    print(n)
print('Boucle terminée.')

Le résultat de sortie est:

4
3
循环结束。

Utilisation de continue dans while:

Exemple

n = 5
while n > 0:
    n -= 1
    if n == 2:
        continue
    print(n)
print('Boucle terminée.')

Le résultat de sortie est:

4
3
1
0
循环结束。

D'autres exemples sont les suivants :

Exemple

#!/usr/bin/python3 for letter in 'Example': # Premier exemple if letter == 'b': break print ('La lettre actuelle est :', letter) var = 10 # Deuxième exemple while var > 0: print ('La valeur actuelle de la variable est :', var) var = var -1 if var == 5: break print ("Au revoir !")

Le résultat de sortie du script ci-dessus est :

当前字母为 : R
当前字母为 : u
当前字母为 : n
当前字母为 : o
当前字母为 : o
当前变量值为 : 10
当前变量值为 : 9
当前变量值为 : 8
当前变量值为 : 7
当前变量值为 : 6
Good bye!

L'exemple suivant parcourt la chaîne Example et ignore la sortie lorsque la lettre o est rencontrée :

Exemple

#!/usr/bin/python3 for letter in 'Example': # Premier exemple if letter == 'o': # Ignorer la sortie lorsque la lettre est o continue print ('Lettre actuelle :', letter) var = 10 # Deuxième exemple while var > 0: var = var -1 if var == 5: # Ignorer la sortie lorsque la variable vaut 5 continue print ('Valeur actuelle de la variable :', var) print ("Au revoir !")

Le résultat de sortie du script ci-dessus est :

当前字母 : R
当前字母 : u
当前字母 : n
当前字母 : b
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!

Les instructions de boucle peuvent avoir une clause else ; elle est exécutée lorsque la boucle se termine en épuisant la liste (avec une boucle for) ou lorsque la condition devient fausse (avec une boucle while), mais elle n'est pas exécutée lorsque la boucle est terminée par break.

L'exemple suivant est un exemple de boucle pour trouver les nombres premiers :

Exemple

#!/usr/bin/python3 for n in range(2, 10): for x in range(2, n): if n % x == 0: print(n, 'Equals', x, '*', n//x) break else: # Aucun élément trouvé dans la boucle print(n, 'est un nombre premier')

La sortie de l'exécution du script ci-dessus est :

2  是质数
3  是质数
4 等于 2 * 2
5  是质数
6 等于 2 * 3
7  是质数
8 等于 2 * 4
9 等于 3 * 3

Instruction pass

Python pass est une instruction nulle, utilisée pour maintenir l'intégrité de la structure du programme.

pass ne fait rien ; il est généralement utilisé comme instruction fictive, comme dans l'exemple suivant

Exemple

>>>while True: ... pass # Attendre l'interruption clavier (Ctrl+C)

La plus petite classe :

Exemple

>>>class MyEmptyClass: ... pass

L'exemple suivant exécute le bloc d'instruction pass lorsque la lettre est o :

Exemple

#!/usr/bin/python3 for letter in 'Example': if letter == 'o': pass print ('Exécuter le bloc pass') print ('Lettre actuelle :', letter) print ("Au revoir !")

La sortie de l'exécution du script ci-dessus est :

当前字母 : R
当前字母 : u
当前字母 : n
执行 pass 块
当前字母 : o
执行 pass 块
当前字母 : o
当前字母 : b
Good bye!
Autres extensions