Est-ce que le try-catch est la seule méthode pour le faire?
D'autres techniques comprennent d_empty = False if d else True
Est-ce que le try-catch est la seule méthode pour le faire?
Vous pouvez également écrire if len(d) == 0
si la conversion implicite est trop mignonne pour vous (et en fait, c'est ce que fait la conversion en booléen sous le capot).
if d
est la façon canonique pour toutes les collections (tuples, chaînes de caractères, listes, dictionnaires et tous leurs nombreux sous-types).
Il existe deux façons principales :
Les conteneurs peuvent être utilisés comme des booléens (avec False
indiquant que le conteneur est vide) :
Les conteneurs en Python ont aussi une méthode __len__()
pour indiquer leur taille.
Voici quelques modèles :
non_vide = bool(d) # Coerce to a boolean value
vide = not d # Invert the boolean value
if d: # Test the boolean value
print('non vide')
while d: # Loop until empty
x = d.pop()
process(x)
if len(d) == 0: # Test the size directly
print('vide')
La dernière technique n'est pas aussi rapide ou succincte que les autres, mais elle a le mérite d'être explicite pour les lecteurs qui ne connaissent pas la valeur booléenne des conteneurs.
D'autres façons sont possibles. Par exemple, l'indexation avec d[0]
génère une IndexError
pour une séquence vide. J'ai vu cela utilisé quelques fois.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.