Travailler avec des indicateurs en Python
Un indicateur - est une variable spéciale,
qui ne peut prendre que deux valeurs :
True ou False. À l'aide
d'indicateurs, on peut résoudre des tâches vérifiant
l'absence de quelque chose : par exemple, on peut
vérifier qu'il n'y a pas d'élément avec
une valeur spécifique dans une liste.
Résolvons la tâche suivante : une liste
de nombres est donnée, il faut vérifier si tous les éléments
sont positifs. Pour cela,
définissons une variable spéciale flag,
qui sera vraie avant le début de la boucle. Et
lorsqu'un nombre négatif est rencontré dans la boucle,
nous changerons sa valeur en False. Pour
connaître le résultat de la vérification,
affichons la variable flag après la boucle
dans la console :
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # affichera True, car tous les nombres sont positifs
Il est considéré comme une bonne pratique de donner à la
variable indicateur un nom qui reflète
la condition définie. Renommons flag
en isAllPositive. Et pour plus de clarté,
changeons un nombre de la liste en négatif :
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # affichera False, car il y a un nombre négatif
Si la liste parcourue contient de nombreuses valeurs
et qu'il faut arrêter la boucle après la détection
du premier nombre négatif, il faut alors
utiliser l'instruction break :
for el in lst:
if el < 0:
isAllPositive = False
break
Lorsqu'on travaille avec des indicateurs, pour connaître le résultat
de l'exécution de la boucle, on peut afficher non pas la valeur
de l'indicateur, mais un message arbitraire à l'aide
d'un if supplémentaire.
Réécrivons l'exemple précédent. Si
tous les éléments sont positifs, alors
affichons '+++', sinon -
'---' :
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # affichera '---'
Une liste est donnée. Vérifiez que tous ses éléments sont des nombres positifs.
Un nombre entier est donné. Vérifiez s'il est premier, c'est-à-dire s'il n'est divisible que par un et par lui-même.