Boucles

Pour les boucles, on parle aussi de structures itératives

Les boucles while

En anglais, while signifie "tant que". On exécutera donc les instructions contenues dans le bloc while tant qu'une condition définie sera vérifiée.

Réalisons un exemple simple : un compte à rebours.

val_depart = 3
while val_depart >= 0:
  print(val_depart)
  val_depart -= 1

La structure d'un bloc while est très similaire à celle d'un bloc if:

  • le mot-clé est suivi d'un booléen
  • on retrouve le caractère : à la fin de la ligne
  • le bloc d'instructions à exécuter est indenté d'un niveau
On parle d'itération conditionnelle.

Les boucles for

En anglais, for signifie "pour". L'utilisation typique d'une boucle for sera par exemple pour une séquence de nombres.
Ainsi, on pourra par exemple réaliser des instructions "pour chaque item de la séquence 1, 2, 3, 4, 5."
Réalisons un exemple simple : des tables de multiplication.

nombre = 7
for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
  print(i*nombre)

Parcourir une séquence

Nous avons rapidement vu le mot-clé for, et notamment son utilisation en combinaison avec la fonction range(). Ainsi, nous avons pu réaliser des itérations sur un nombre défini d'éléments.

L'instruction for permet également de parcourir des séquences : typiquement, des tuples ou des listes ! La structure est identique à l'utilisation de range(), et voici un exemple :

# création d'un liste, cela fonctionne de la même façon avec un tuple
nombres_premiers = [1, 3, 5, 7, 11, 13, 17]

for nb in nombres_premiers:
  print(nb, "est un nombre premier.")

Il est important de noter que pour une boucle for, il n'y a plus de condition à réaliser pour que la boucle se réalise.

La fonction range()

La fonction range() est une fonction prédéfinie en Python. Elle permet de générer des séquences de façon automatique. Ainsi, elle est très pratique pour la création de boucles for.
Elle peut prendre un, deux ou trois arguments selon la séquence que l'on veut réaliser.

range(début, fin, step)
Range

Vous trouverez davantage d'explications à cette adresse :

# On définit une fonction printRange
# printRange affiche sur une seule ligne une séquence générée par range()
def printRange(range):
    for i in range:
        print(i, end=" ")
    print()

printRange(range(10))
printRange(range(3, 10))
printRange(range(1, 10, 2))
printRange(range(0, 100, 10))