Encore un exercice avec une syntaxe à corriger.
Le script ci-dessous ne définira pas la variable resultat.
Pourtant, la variable 'a' n'est pas vide et contient bien un nombre.
Il vous faut modifier la condition pour que le script passe dans le bloc d'instruction de la structure conditionnelle et assigne la chaîne de caractères "La condition est validée." à la variable resultat.
Si vous vous rappelez bien de vos cours sur les booléens, vous devez vous souvenir qu'un boolean 'False' peut être également représenté par le nombre 0.
code Code
a = 0
if a is not None:
resultat = "La condition est validée."
comment Explications
Exercice qui s'attaque à une erreur assez sournoise et courante.
Dans ce cas-ci, on veut vérifier que la variable a contient bien un nombre.
Pour rapidement vérifier qu'une variable contient des données, on peut utiliser une structure conditionnelle de base.
Par exemple pour vérifier qu'une liste n'est pas vide, on peut faire :
ma_liste = [1, 2, 3]
if ma_liste:
print("La liste n'est pas vide")
Au lieu de :
ma_liste = [1, 2, 3]
if len(ma_liste) > 0:
print("La liste n'est pas vide")
Vous conviendrez que la première façon de faire est plus concise est lisible.
Cependant, en prenant l'habitude de cette syntaxe, on peut tomber dans l'écueil qu'il fallait résoudre dans cet exercice.
En effet, imaginons qu'à la place d'une liste, nous récupérons cette fois-ci un nombre entier.
Si le nombre récupéré est 0, alors la structure conditionnelle ne sera pas vérifiée, car le nombre entier 0 est évalué à False.
C'est pourquoi dans ce cas-ci, nous ne pouvons pas utiliser la syntaxe simplifiée if variable, il faut donc vérifier explicitement que la variable n'est pas égale à None :
a = 0
if a is not None:
resultat = "La condition est validée."
star Points importants
-
Le nombre
0est interprété comme un booléenFalsedans une structure conditionnelle. -
Pour vérifier explicitement qu'une variable n'est pas égale à
None, il vaut mieux utiliser la syntaxeif variable is not None.
a = 0
if a:
resultat = "La condition est validée."a = 0
if a is not None:
resultat = "La condition est validée."Console
Un instant...
Résultats
Test de la variable resultat
try:
assert resultat == "La condition est validée.", ""
except NameError:
raise NameError("La variable resultat n'est pas définie.")Bravo, tu as réussi cet exercice de code 🥳
Envoyer ma solution
Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇
Ma solution :
