Maison  >  Article  >  développement back-end  >  En Python, quelle est la différence entre une boucle for et une boucle while ?

En Python, quelle est la différence entre une boucle for et une boucle while ?

WBOY
WBOYavant
2023-09-09 15:37:021671parcourir

En Python, quelle est la différence entre une boucle for et une boucle while ?

Dans cet article, nous découvrirons la différence entre la boucle « for » et la boucle « while ».

Pour la boucle

Une boucle for est une instruction de flux de contrôle qui exécute du code pour un nombre prédéfini d'itérations. Le mot-clé utilisé dans cette instruction de flux de contrôle est "for". Utilisez une boucle for lorsque le nombre d'itérations est connu.

La boucle for est divisée en deux parties -

Titre - Cette partie précise les itérations de la boucle. Dans la section d'en-tête, la variable de boucle est également déclarée, ce qui indique au corps quelle itération est en cours d'exécution.

Body - La section body contient les instructions exécutées pour chaque itération.

  • Les instructions d'initialisation, de vérification de condition et d'itération sont toutes écrites au début de la boucle.

  • Utilisez-le uniquement lorsque le nombre d'itérations est connu à l'avance.

  • Si aucune condition n'est mentionnée dans la boucle "for", la boucle itérera un nombre infini de fois.

  • L'initialisation n'est effectuée qu'une seule fois et ne sera pas répétée.

  • La déclaration d'itération est écrite au début.

  • Il s'exécutera donc une fois que toutes les instructions de la boucle auront été exécutées.

Grammaire

for(initialization; condition; iteration){
   //body of the 'for' loop
}

Exemple

Le programme suivant utilise une boucle for pour imprimer tous les éléments de la liste -

# input list
inputList = [10, 20, 30, 40, 50]
print("Input list elements:")
# traversing through all elements of the list using for loop
for element in inputList:
   # printing each element of the list
   print(element)

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

Input list elements:
10
20
30
40
50

Boucle While

Boucle qui exécute une seule instruction ou un ensemble d'instructions par rapport à une condition vraie donnée. Cette boucle est représentée par le mot-clé « while ». Une boucle "while" est utilisée lorsque le nombre d'itérations est inconnu. Répétez cette instruction jusqu'à ce que la valeur booléenne soit fausse. Puisque la condition est testée au début de la boucle while, elle est également appelée boucle de pré-test.

  • L'initialisation et la vérification des conditions sont effectuées au début de la boucle.

  • Utilisé uniquement lorsque le nombre d'itérations est inconnu.

  • Si aucune condition n'est mentionnée dans la boucle "while", cela provoquera une erreur de compilation.

  • Si l'initialisation est effectuée tout en vérifiant la condition, alors l'initialisation aura lieu à chaque itération de la boucle.

  • L'instruction d'itération peut être écrite à tout moment dans la boucle.

Grammaire

while ( condition) {
   statements;
   //body of the loop
}

Exemple

Le programme suivant utilise une boucle for pour imprimer tous les éléments de la liste -

# Initializing a dummy variable with 1
i = 1
# Iterate until the given condition is true
while i < 10:
   # printing the current value of the above variable
   print(i)
   # incrementing the value of i value by 1
   i += 1 

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

1
2
3
4
5
6
7
8
9

Quand devez-vous utiliser les boucles For et While ?

Une boucle for est utilisée lorsque nous connaissons le nombre d'itérations (c'est-à-dire combien de fois une instruction doit être exécutée). C'est pourquoi lorsque nous initialisons la boucle for, nous devons définir le point final.

Lorsque le nombre d'itérations est inconnu, utilisez une boucle while. Cela peut être utilisé lorsque nous devons terminer une boucle en fonction de conditions autres que le nombre de répétitions. Dans ce cas, il n’est pas nécessaire de connaître la situation à l’avance. C'est pourquoi on peut utiliser des expressions booléennes dans l'initialisation des boucles.

Sans conditions

Si aucune condition n'est spécifiée dans les boucles for et while, les boucles itéreront à l'infini.

Sans conditions, voici la différence entre la boucle for et la boucle while -

For Loop - Dans l'exemple ci-dessous, la boucle s'exécutera un nombre infini de fois.

Exemple

l = [1]
for m in l:
   print("TutorialsPoint")
   l.append(m)

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
.
.
.
.
runs infinite times

Nous commençons par une liste et l'initialisons avec une seule valeur aléatoire. Ensuite, à l’aide d’une boucle for et de l’opérateur in, nous parcourons les éléments de la liste. À l'intérieur de la boucle, il imprimera du texte aléatoire, puis nous ajouterons un autre élément à la liste afin que la boucle for s'exécute à nouveau à cause du nouvel élément. Cette boucle sera exécutée un nombre infini de fois.

While Loop - Dans l'exemple ci-dessous, la boucle s'exécutera un nombre infini de fois.

Exemple

while True:
   print("TutorialsPoint")

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
.
.
.
.
runs infinite times

差异表

比较基础 For循环 While循环
关键字 使用for关键字 使用while关键字
已使用 当迭代次数已知时,使用 For 循环。 当迭代次数未知时使用While循环。
不存在条件 不存在条件时循环无限次运行 在不存在条件的情况下返回编译时错误
初始化的性质 一旦完成,不可重复 在while循环中,每次迭代都可以重复。
函数 要进行迭代,请使用 range 或 xrange 函数。 while循环中没有这样的函数。
基于迭代的初始化 在循环开始时完成。 在 while 循环中,可以在循环体中的任何位置执行此操作。
生成器支持 Python 的 for 循环可以迭代生成器。 While 循环不能直接在生成器上迭代。
速度 for 循环比 while 循环更快。 与 for 循环相比,While 循环相对较慢。

结论

在本文中,我们通过示例了解了 for 和 while 循环之间的区别,以及 while 和 for 循环的工作原理。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer