pour ou en boucle pour faire quelque chose n fois
En Python, vous avez deux beaux moyens pour répéter une action plus d'une fois. L'un d'eux est while
boucle et l'autre - for
boucle. Donc, nous allons avoir un regard sur deux de simples morceaux de code:
for i in range(n):
do_sth()
Et les autres:
i = 0
while i < n:
do_sth()
i += 1
Ma question est de savoir qui est le meilleur. Bien sûr, la première, qui est très commun dans la documentation des exemples et des différents morceaux de code que vous pourriez trouver autour de l'Internet, est beaucoup plus élégant et de plus courte durée, mais d'un autre côté, il crée un complètement inutile liste d'entiers juste pour faire une boucle au-dessus d'eux. N'est-ce pas un gaspillage de mémoire, surtout en ce qui concerne les grands nombres d'itérations sont concernés?
De sorte qu'en pensez-vous, ce qui est mieux?
source d'informationauteur Sventimir
Vous devez vous connecter pour publier un commentaire.
C'est ce que
xrange(n)
est pour. Il évite de créer une liste de nombres, et, au lieu de seulement fournit un itérateur objet.En Python 3,
xrange()
a été renommérange()
- si vous voulez une liste, vous devez expressément la demande vialist(range(n))
.C'est plus léger que
xrange
(et la boucle while), puisqu'il n'a même pas besoin de créer de laint
objets. Il fonctionne également tout aussi bien dans les Python2 et Python3La différence fondamentale dans la plupart des langages de programmation, c'est que sauf l'inattendu se produit un
for
boucle toujours répétern
fois, puis terminer avec unwhile
boucle, il peut répéter0 times, 1, more or even forever
selon une condition qui est toujours vrai au début de chaque boucle et toujours la valeur false à la sortie de la boucle, (pour l'intégralité d'undo ... while
boucle, (ourepeat until
), pour les langues, s'exécute toujours au moins une fois et ne garantit pas la condition sur la première exécution).Donc la réponse à votre question est " tout dépend de ce que vous essayez de faire'!