7 erreurs python qui sont réellement des fonctionnalités

 7 erreurs python qui sont réellement des fonctionnalités


Image de l’auteur | Idéogramme

Python est devenu un outil principal pour de nombreux professionnels des données à des fins de manipulation de données et d’apprentissage automatique en raison de la facilité à utiliser des gens. Le langage de programmation est devenu essentiellement l’étalon-or dans la communauté des données.

Si vous connaissez déjà Python, vous rencontrez souvent des informations erronées chaque fois que vous produisez une syntaxe incorrecte ou violez les règles de Python. Il est intégré dans la philosophie de conception de Python pour souligner que les erreurs doivent être montrées explicitement, en suivant le principe qu’il est Plus facile à demander pardon que la permission (EAFP), qui vous permet d’abord d’exécuter le code avant de savoir s’il y a une erreur.

Certaines erreurs Python ne sont pas des bogues mais des fonctionnalités qui aident les utilisateurs à améliorer leurs compétences Python. Comprendre ces erreurs est vital si nous souhaitons les utiliser comme guide pour notre travail intentionnellement. À des fins d’apprentissage, cet article explorera sept erreurs Python différentes qui sont des fonctionnalités.

Allons-y.

1. Erreur de syntaxe

Une erreur de syntaxe est augmentée lorsque le Python Parser rencontre une syntaxe de code non valide qui ne suit pas la logique Python. Tout code incorrect sera affiché comme une erreur, qui devient fondamental pour les fonctionnalités de conception de Python. Voyons l’erreur dans le code Python.

Le code ci-dessus augmentera une erreur de syntaxe comme ci-dessous.

 Cell In(6), line 1
    if True print("hello")
            ^
SyntaxError: invalid syntax

L’erreur montre que nous n’adhérons pas à la syntaxe Python. La conception d’erreurs de syntaxe est intentionnelle car c’est une fonctionnalité Python qui indique fondamentalement que tout écart par rapport à la norme doit être corrigé. Il n’exécutera aucun code qui ne suivra pas la grammaire linguistique et n’essaie pas de deviner ce que nous voulons faire.

L’erreur de syntaxe garantit que nous avons toujours un code clair et sans ambiguïté. Il aide également à la collaboration, car la norme reste cohérente, quel que soit votre lieu de langue python.

2. Erreur d’index

Pour tous ceux qui utilisent Python, il y a plusieurs fois où nous utilisons des objets de séquence tels que des listes ou des tuples pour notre travail. L’accès aux données dans ces objets de séquence nous obligera à utiliser des méthodes d’indexation.

Eh bien, que se passe-t-il lorsque nous accédons à un index en dehors de ses limites? Python lancera un message d’erreur. Voyons ce qui se passe en utilisant du code réel.

lst = (1, 2, 3)
print(lst(5))

Le code ci-dessus lancera l’erreur suivante:

IndexError                                Traceback (most recent call last)
Cell In(2), line 2
      1 lst = (1, 2, 3)
----> 2 print(lst(5))

IndexError: list index out of range

L’erreur est affichée comme une erreur d’index, qui vous informe que l’index est hors de portée. L’erreur est intentionnelle, car elle démontre que Python n’autorise pas le rembourrage silencieux (un cas où l’accès aux données hors limites étend automatiquement la structure avec les valeurs d’espace réservé).

Si cela devait se produire, le comportement introduirait des bogues subtils qui causeraient plus de problèmes dans un pipeline plus complexe. Par exemple, la boucle dans une séquence Python cassera la boucle lorsque l’index est hors limites, ce qui ne se produirait pas si aucune erreur d’index n’était présente.

3. Erreur de clé

Comme nous le savons, l’objet dictionnaire mappe les clés des valeurs stockées à l’intérieur. Semblable à une erreur d’index, une erreur de clé se produit pour l’objet Dictionnaire lorsque la recherche échoue car la clé n’est pas présente dans l’objet Dictionary. Voyons comment il agit dans le code Python.

d = {'a': 1}
print(d('b'))

Le code ci-dessus soulèvera l’erreur suivante:

KeyError                                  Traceback (most recent call last)
Cell In(3), line 2
      1 d = {'a': 1}
----> 2 print(d('b'))

KeyError: 'b'

L’erreur clé est augmentée car aucune clé «B» n’est dans le dictionnaire. C’est par conception que Python soulève explicitement cette erreur, car nous ne voulons pas que le comportement involontaire utilise les valeurs d’espace réservé pour la clé silencieusement.

En utilisant cette erreur de clé, nous pouvons attraper toutes les erreurs de syntaxe ou les erreurs logiques pendant l’accès au dictionnaire au lieu de deviner si la clé est là ou non. L’erreur est également utile lorsqu’elle est combinée avec la syntaxe Try / sauf pour créer une nouvelle clé dans le dictionnaire si elle n’est pas présente.

4. Erreur de nom

L’erreur de nom est une erreur qui se produit lorsque nous appelons une variable qui n’a pas été définie précédemment. Il existe également un cas similaire appelé UNBOND LOCAL ERROR, une sous-classe d’erreur de nom, où nous avons une fonction Python qui essaie d’accéder à une variable locale avant sa définition. Voyons l’erreur dans le code ci-dessous.

L’erreur est affichée dans la sortie ci-dessous.

NameError                                 Traceback (most recent call last)
Cell In(5), line 1
----> 1 print(x)

NameError: name 'x' is not defined

Le code soulève une erreur car nous n’avons pas encore défini la variable «x». Voyons le code Python pour l’erreur locale non liée.

def foo():
    x = x + 1  

foo()

L’erreur est affichée dans la sortie ci-dessous.

Cell In(4), line 2, in foo()
      1 def foo():
----> 2     x = x + 1

UnboundLocalError: cannot access local variable 'x' where it is not associated with a value

Les deux erreurs ici sont soulevées parce que nous devons suivre la règle de portée de Python, qui indique que nous ne pouvons pas utiliser accidentellement des variables qui ne sont pas encore présentes. L’erreur permet aux utilisateurs d’attraper des fautes de frappe ou des bugs immédiatement, plutôt que de créer silencieusement Python qui perturbera notre travail Python.

5. Erreur de type

L’erreur de type est une erreur qui est augmentée lorsque nous effectuons une certaine opération sur un objet mais avec le mauvais type d’objet. Affichons l’erreur de type avec le code Python ci-dessous.

L’erreur est augmentée comme indiqué dans la sortie ci-dessous.

TypeError                                 Traceback (most recent call last)
Cell In(7), line 1
----> 1 next((1, 2, 3))

TypeError: 'list' object is not an iterator

L’erreur de type se produit car nous ne pouvons pas passer un objet Iterator à la fonction suivante.

Python est conçu pour utiliser des objets uniquement dans leurs manières prévues. C’est pourquoi, cette erreur aide les utilisateurs à prévenir les bogues subtils et garantit que la fonction fonctionne comme prévu.

6. Erreur de valeur

Contrairement à l’erreur de type, l’erreur de valeur est augmentée si la fonction reçoit un argument de type correct mais une valeur inappropriée. Affichons-le avec le code Python.

L’erreur est affichée dans le résultat ci-dessous.

ValueError                                Traceback (most recent call last)
Cell In(8), line 1
----> 1 int("abc")

ValueError: invalid literal for int() with base 10: 'abc'

Vous pouvez voir que l’erreur de valeur se produit parce que nous passons une valeur de chaîne qui n’est pas un nombre valide. La fonction reçoit le bon type mais pas la valeur appropriée, donc Python signale qu’il s’agit d’une erreur. C’est la conception Python qui montre que l’erreur se produit au lieu de l’ignorer ou de mettre une valeur d’espace réservé, car cela perturberait notre travail.

7. Erreur d’assertion

Une erreur d’affirmation se produit lorsque l’instruction ASSERT est utilisée et que la condition n’est pas remplie ou est fausse. C’est une fonctionnalité qui est utile pour déboguer et appliquer toute hypothèse dans votre travail Python. Voyons l’erreur avec le code Python ci-dessous.

assert 2 + 2 == 5, "It's not right"

Vous obtiendrez l’erreur suivante.

AssertionError                            Traceback (most recent call last)
Cell In(13), line 1
----> 1 assert 2 + 2 == 5, "It's not right"

AssertionError: It's not right

Le code 2 + 2 == 5 produit une fausse valeur, conduisant à une erreur d’assertion lorsque nous utilisons l’instruction ASSERT. Nous pouvons toujours inclure des détails sur l’erreur lors de l’utilisation de l’affirmation, similaire à ce que vous voyez ci-dessus.

L’erreur d’assertion aide les utilisateurs à fournir une flexibilité dans le développement, car nous pouvons configurer un système d’attraction de défaillance qui permet un débogage plus facile. En sélectionnant les conditions dans lesquelles l’erreur d’affirmation est augmentée, nous prenons également plus de contrôle sur la façon dont l’erreur doit se comporter.

Conclusion

De nombreux professionnels des données utilisent Python. Le langage de programmation soulève parfois des erreurs qui sont réellement des fonctionnalités, et nous devons donc garder les yeux ouverts et inspecter notre pile de trace.

J’espère que cela a aidé!

Cornellius Yudha Wijaya est un directeur adjoint des sciences de données et un écrivain de données. Tout en travaillant à plein temps chez Allianz Indonesia, il aime partager des conseils de python et de données via les médias sociaux et la rédaction des médias. Cornellius écrit sur une variété d’IA et de sujets d’apprentissage automatique.



Source link

Related post