L’identation est utilisé pour déterminer ce qui fait partie du bloc ou non
if condition:
print("A")
print("B")
print("C")
if condition1:
if condition2:
print("condition1 et condition2 sont vraies")
Si le if
ne contient qu’une ligne d’instruction, le retour à la ligne n’est pas obligatoire — même chose pour les autres structures contrôle (for, while)
if a > b: print("a is greater than b")
x = 50
if x == 0:
print("x cannot be null")
elif x > 100:
print("x cannot be superior to 100")
else:
print("x = ", x)
a = 25
b = "majeur" if a >= 18 else "mineur"
print(b) # majeur
On peut également utiliser un tuple:
("is not", "is")[isPalindrome(txt)]
À partir de Python 3.10
match animal:
case "bird":
klass = Bird
case "dog":
klass = Dog
case _:
raise NotImplementedError(f"{animal} is not handled")
Boucler n fois
for i in range(5):
print(i)
# 0 1 2 3 4
range
peut prendre jusqu’à 3 paramètres: from, to (non inclus) et step
for i in range(50,40,-1):
print(i)
# 50 49 48 47 46 45 44 43 42 41
range
retourne une liste, sur laquelle toutes les opérations de liste peuvent s’appliquer (comme récupérer un index donné).
Boucler sur une liste
l = [10,20,30,40]
for val in l:
print(val)
for i,val in enumerate(l):
print(i,val)
Boucler sur les caractères d’un mot
word = "Hello"
for i, char in enumerate(word)
print(i, char)
for i in range(len(word)):
print(word[i])
Boucler sur un dictionnaire
d = {"a":1, "b":2, "c":3}
for key in d:
print(key, d[key])
for key, item in d.items():
print(key, item)
for item in d.values():
print(item)
Boucler sur deux listes clés/valeurs
questions = ['name', 'colour', 'shape']
answers = ['apple', 'red', 'a circle']
# using zip() to combine two containers
# and print values
for question, answer in zip(questions, answers):
print('What is your {0}? I am {1}.'.format(question, answer))
i = 0
while i<10:
i += 1
print(i)
Met fin à une boucle for
ou while
for i in range(5):
if i == 3:
break
print(i)
# 0 1 2
Les boucles for
peuvent avoir une clause else
, qui sera exécutée uniquement si la boucle s’est terminée normalement — n’a pas rencontré d’instruction break
.
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print( n, 'equals', x, '*', n/x)
break
else:
# loop fell through without finding a factor
print(n, 'is a prime number')
Même chose pour while
count = 0
while (count < 3):
count = count + 1
print(count)
else:
print("block else")
Saute l’itération en cours
for i in range(5):
if i == 3:
continue
print(i)
# 0 1 2 4