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.

Afficher l'aide

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 0 est interprété comme un booléen False dans une structure conditionnelle.

  • Pour vérifier explicitement qu'une variable n'est pas égale à None, il vaut mieux utiliser la syntaxe if 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...
terminal

Résultats

/ 1 tests validés

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é 👇

Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.

Ma solution :

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.