+++ title = “None” weight = 1 +++
None
est une “valeur magique” natif en Python. Il est toujours présent, et il est unique.
Un peu comme True
et False
qui sont deux valeurs qui servent à représenter tous les booléens.
L’interpréteur intéractif n’affiche rien quand la valeur est None
>>> a = 42
>>> a
42
>>> b = None
>>> b
En réalité, toutes les fonctions pythons retournent quelque chose, même quand
elle ne contiennent pas le mot-clé return
.
def ne_renvoie_rien():
print("je ne fais qu'afficher quelque chose")
>>> resultat = ne_renvoie_rien()
"je ne fais qu'afficher quelque chose"
>>> resultat
La plupart des fonctions que nous avons vues échouent si on leur passe None en argument:
>>> len(None)
TypeError: object of type 'NoneType' has no len()
>>> None < 3
TypeError: '<' not supported between instances of
'NoneType' and 'int'
>>> int(None)
TypeError: int() argument must be a string,
a bytes-like object or a number,
not 'NoneType'
>>> str(None)
'None'
def trouve_dans_liste(valeur, liste):
for element in liste:
if element == valeur:
return element
return None
>>> trouve_dans_liste(2, [1, 2, 3])
2
>>> trouve_dans_liste(False, [True, False])
False
>>> trouve_dans_liste(1, [3, 4])
def trouve_dans_liste(liste, valeur):
for element in liste:
if element == valeur:
return element
None est Falsy, et on peut vérifier si une variable vaut None avec is None
# hypothèse: `ma_valeur` n'est pas None
mon_element = trouve_dans_liste(ma_valeur, ma_liste)
if mon_element is None:
print("élément absent de la liste")
if not mon_element:
# Peut-être que l'élément n'était pas dans la liste,
# ou peut-être y était-il, mais avec une valeur falsy
...