Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Boucles et énoncés conditionnels

Iterate and apply conditional criteria. For interactive reading and executing code blocks Binder and find b03-pyloop.ipynb, or install Python and JupyterLab locally.

Python provides two basic types of loops to iterate through objects or functions: the for and the while loop statements. Both loop types have additional options and can be combined with conditional statements. Conditional statements evaluate boolean arguments (True/False) using the keywords if: ... else: .... This section introduces the two loop types and conditional statements as integral parts of loops.

Déclarations conditionnelles (IF - ELSE)

Les énoncés conditionnels s’ouvrent par un mot clé if, suivi d’une condition de test (p. ex., variable >= 2) et d’une action à accomplir lorsque la condition de test est True (boolean résultat du test). La déclaration conditionnelle peut être suivie des mots-clés elif (else if) et/ou else, qui représentent des tests alternatifs dans le cas où la condition de test if était False. Cependant, lorsque la déclaration if était True, aucune des déclarations suivantes ne sera évaluée.

variable_2_test = "ice cream"
if "cream" in variable_2_test:
    print("It's creamy, for sure.")
elif "ice" in variable_2_test:
    print("It's cold, ice-cold cream.")
else:
    print("Anything but ice cream.")
It's creamy, for sure.

Tout opérateur peut être utilisé dans l’état d’essai (voir operators) et les conditions peuvent également être imbriquées.

number_of_scoops = 3
if number_of_scoops <= 0:
    print("Why? How can you?")
elif number_of_scoops < 4:
    if number_of_scoops == 1: # this is a nested if-statement
        print("One is better than nothing.")
    else:
        print("That is reasonable.")
else:
    print("A lot. Still reasonable. Maybe.")
That is reasonable.

for-loop

for boucles servent pour l’itération séquentielle à travers des objets tels que des listes ou des tableaux. for boucles peuvent également être complétées par else déclarations à la fin (pourquoi vous voudriez faire cela...).

for e in range(0,8,2):
    print("e is %d now." % e)

flavors = ["chocolate", "bread", "cherry"] 
for index in range(len(flavors)): 
    print(flavors[index])
else:
    print(" --- end of first loop.")
    
# produces the same
for e in flavors:
    print(e)
e is 0 now.
e is 2 now.
e is 4 now.
e is 6 now.
chocolate
bread
cherry
 --- end of first loop.
chocolate
bread
cherry

Dans de nombreux cas, il est utile d’ itérer non seulement sur le nombre d’itération (une valeur d’augmentation entier) ou les éléments d’une liste (par exemple, une valeur string), mais les deux simultanément. Le numéro de l’étape d’itération et les éléments de la liste peuvent être consultés avec la méthode enumeration:

for iteration_step, list_element in enumerate(flavors):
    print("The list element {0} is at position number {1}.".format(list_element, str(iteration_step)))
The list element chocolate is at position number 0.
The list element bread is at position number 1.
The list element cherry is at position number 2.

while-loop

while boucles s’exécutent jusqu’à ce qu’une condition de test (expression) soit remplie. Comme l’énoncé if, la condition de test peut être composée d’une seule variable ou d’une expression incluant operators (par exemple, while a > b). Pour modifier une variable dans une boucle while, utilisez += (ajouter le montant), -= (sous-traiter le montant), *= (multiplier avec), ou /= (diviser par). Aussi while boucles peuvent être complétées par else déclarations.

count = 10
while (count > 7):
    count -= 1
    print("Count down %d " % count)
else:
    print("Mission aborted.")

count = 0
while True:
    print("Count up: %d " % count)
    count += 1 # Replaces count = count + 1 - also works with -=, *= and /=
    if count > 3:
        break
Count down 9 
Count down 8 
Count down 7 
Mission aborted.
Count up: 0 
Count up: 1 
Count up: 2 
Count up: 3 

Exemple

Utilisez ce bloc de code pour pratiquer avec les types de données, for boucles et les déclarations if conditionnelles en modifiant les variables scoops et favorite_flavor. Notez que la mise en œuvre des énoncés try et except garantit que le nombre de scoops ou favorite_flavor que vous définissez n’écrasera pas le script.

scoops = 2 # re-define the number of scoops
favorite_flavor = "vanilla" # choose your favorite flavor

size_scoops = {1: "small", 2: "medium", 3: "this is too much ice cream"}
price_scoops = {1: "3 dollars", 2: "5 dollars", 3: "your health"}
print("Hi,\nI want %d scoop-s in a waffle, please." % scoops)

try:
    size = " " + str(size_scoops[scoops])
    price = str(price_scoops[scoops])
except KeyError:
    size = "n unavailable number of scoops"
    price = "not defined"


print("My pleasure to serve you. You have chosen a" + size + " ice cream. The price is " + price + ".")
print("Let me guess your favorite flavor. Say stop when I'm correct.")
for f in flavors:
    print("I guess your favorite flavor is %s." % f)
    if f == favorite_flavor:
        print("Stop, that\'s it!")
        if f == "bread":
            print("Sorry, this is not a bakery.")
        break 
Hi,
I want 2 scoop-s in a waffle, please.
My pleasure to serve you. You have chosen a medium ice cream. The price is 5 dollars.
Let me guess your favorite flavor. Say stop when I'm correct.
I guess your favorite flavor is chocolate.
I guess your favorite flavor is bread.
I guess your favorite flavor is cherry.

Vérification de la réussite en apprentissage

Prenez le test de réussite d’apprentissage pour ce carnet Jupyter.