5 erreurs de python expliquées (et comment les réparer)
Agence web » Actualités du digital » 5 erreurs de python expliquées (et comment les réparer)

5 erreurs de python expliquées (et comment les réparer)

Il existe de nombreux types d'erreurs dans Python. Peu importe où vous êtes dans votre voyage Python, vous avez probablement fait face à une ou plusieurs de ces erreurs. Pour certains, il pourrait être facile de savoir ce qui ne va pas dans votre code. Pour les autres? Pas tellement. C'est pourquoi j'explique ce qu'ils veulent dire.

5

Indentationerror

Si vous êtes un débutant absolu à Python ou si vous avez déménagé d'une langue comme C / C ++ ou Java, ce sera l'erreur la plus courante que vous rencontrerez. Dans Python, nous définissons des blocs en utilisant l'indentation au lieu des accolades, comme cela est courant dans de nombreuses autres langues. Un « bloc » fait référence à un segment de code qui est traité comme une seule unité. Pensez aux blocs conditionnels, à une fonction ou à une boucle.

Dans Python, toutes les déclarations d'un bloc doivent avoir le même niveau d'indentation. Lorsque le niveau d'indentation change (augmente ou diminue), il signifie le début ou la fin d'un bloc. Python s'appuie fortement sur une indentation cohérente. L'indentation incohérente conduira à IndentationError.

Un scénario commun lorsque vous pouvez faire face à cette erreur est lorsque vous copiez le code-coller dans votre éditeur. Parfois, en raison de la différence entre la façon dont les différents éditeurs format du texte, l'indentation peut passer d'un éditeur à un autre.

        for i in range(5):
print(i)

Lors de la copie des lignes de code ci-dessus, l'indentation s'est cassée. Essayer d'exécuter ce code produira IndentationError. Pour résoudre ce problème, vous devez mettre les déclarations de manière cohérente sous leur bloc.

        for i in range(5):
    print(i)

Un autre problème auquel vous pouvez faire face à cette erreur consiste à utiliser des onglets et des espaces. Certains éditeurs utilisent des onglets tandis que d'autres utilisent quatre espaces pour l'indentation. Si vous les mélangez dans votre code, vous obtiendrez une erreur. Celui-ci est encore plus déroutant car il est difficile à voir avec l'œil nu quelle ligne contient des onglets et celui qui contient des espaces.

4

Syntaxerror

Chaque langage de programmation a une syntaxe. En d'autres termes, un ensemble de règles que vous devez suivre afin d'écrire du code dans cette langue. Donc, si vous enfreignez l'une de ces règles, la langue ne sait pas ce que vous essayez de faire et vous donne une erreur de syntaxe.

En python, un SyntaxError Se produit lorsque l'interprète trouve un code qui ne se conforme pas aux règles de la langue Python. Cela signifie que le code est structuré d'une manière que Python ne peut pas comprendre ou exécuter. UN SyntaxError Empêchera votre programme de commencer même. Certaines des erreurs de syntaxe les plus courantes auxquelles vous êtes confrontées à Python sont:

  • Manquer une ponctuation (oublier le côlon (:) lors du démarrage d'un bloc de code, tel que les conditionnels, les boucles ou les fonctions.)

  • Mal orthographiant ou égayant un mot-clé python (écriture esle au lieu de elseen utilisant un break Déclaration où elle n'est pas censée se produire.)

  • En utilisant des mots clés réservés comme noms de variables.

  • Médiction des opérateurs (en utilisant l'opérateur d'affectation (=) où vous êtes censé utiliser l'opérateur égal (==) dans une instruction.)

  • Oublier de mettre fin à une parenthèse ou de mettre fin à un devis. Cela se produit souvent lorsque vous travaillez avec plusieurs expressions et qu'ils sont à l'intérieur de parenthèses imbriquées.

La bonne nouvelle est que l'interpréteur Python est assez intelligent pour identifier le type d'erreur de syntaxe que vous avez commis et pointer vers le numéro de ligne, et même la position approximative de l'erreur. Bien que parfois le message d'erreur puisse être un peu ambigu et ne pas refléter la cause exacte. Si vous utilisez un bon éditeur de code ou IDE, cela peut suggérer l'erreur et les correctifs possibles.

3

Indexerror

Python propose plusieurs structures de données intégrées telles que les listes, les tuples et les ensembles. Nous avons souvent besoin d'itérer à travers ces structures de données et ces éléments d'accès. Chaque structure de données contient quelque chose appelé un index, qui est la position d'un élément spécifique dans cette structure.

        numbers = (1, 2, 3)
    

Ici, nous avons une liste appelée Numbers. La façon dont nous pouvons accéder aux éléments de la liste est via ses indices, comme ceci:

        print(numbers(1)) 
    

IndexError Généralement, vous essayez d'accéder à un élément dans une structure de données (également appelée séquence) dans un index qui est en dehors de la plage valide des indices pour cette structure de données. Dans de nombreux langages de programmation, y compris Python, l'index commence à partir de zéro. Ainsi, si une séquence contient n éléments, la plage d'indices est de 0 à N-1.

Souvent, les programmeurs oublient de gérer ce cas d'index basé sur zéro et de tomber dans une erreur hors un, ce qui provoque une erreur d'index. Pour éviter les erreurs d'index, mesurez toujours la longueur de votre séquence.

        if index < len(my_list):
    

Lors de l'itération d'une séquence, une erreur de python commune que font que les programmeurs font le modifie également. Cela provoque également une erreur d'index. Alors, évitez de faire ça.

2

Value Enerror

Python propose de nombreux types de données. Lorsque vous travaillez avec différents types de données, nous devons traiter différentes valeurs littérales. Parfois, nous les utilisons comme arguments de fonction. Ce que nous devons savoir, c'est que chaque fonction a un type de données attendu comme argument. Lors de la réception de ces données, la fonction vérifie également si la valeur qu'elle a reçue est valide.

Et cela apporte le ValueError Dans Python. Il s'agit d'une exception intégrée qui est soulevée lorsqu'une fonction ou opération reçoit un argument qui a le type de données correct mais une valeur inappropriée. Cela signifie que le type de l'argument est acceptable, mais sa valeur spécifique n'est pas valable pour l'opération effectuée.

Un cas assez courant pour cela est lorsque vous souhaitez convertir un type de données en un autre.

        int('10')
    

Cela convertit la chaîne «10» en entier 10. Mais, si vous faites ceci:

        int('ten')
    

Vous obtenez une erreur de valeur. C'est parce que le int() La fonction s'attend à un argument de type de données de chaîne. Mais cette valeur de chaîne doit être composée de chiffres. C'est la raison pour laquelle «dix» est une valeur inacceptable. De même, vous pouvez obtenir cette erreur lorsque vous effectuez des opérations mathématiques.

        import math
math.sqrt(-5)

Le sqrt() La fonction attend un nombre positif. Ainsi, un nombre négatif en tant qu'argument augmentera une erreur de valeur. Un autre scénario commun d'erreurs de valeur est lorsque vous prenez la saisie de l'utilisateur. Parce que vous n'avez aucun contrôle sur ce que l'utilisateur peut saisir, la saisie d'une mauvaise valeur entraînera une erreur.

La meilleure façon de gérer ValueError est en utilisant des blocs d'essai à l'exception.

        try:
    num = input("Enter a number: ")
    num_int = int(num)
except ValueError as e:
    print(f"Caught a ValueError: {e}")

De cette façon, vous pouvez empêcher les accidents du programme même si l'utilisateur entre la mauvaise valeur.

1

AttributError

Le AttributeError est une exception courante dans Python qui se produit lorsque vous essayez d'accéder à un attribut ou à une méthode qui n'existe pas sur un objet particulier. En termes simples, cela signifie que vous demandez à un objet de faire quelque chose pour lequel il n'est pas conçu.

Que vous travailliez avec des chaînes, des listes ou des classes personnalisées, il est facile de supposer qu'un objet a certaines propriétés ou capacités, en particulier lors de la commutation entre différents types de données. Cependant, Python augmentera un AttributeError Le moment où vous essayez d'appeler un attribut qui n'est pas disponible.

        text = "hello world"
print(text.push())

Les cordes n'en ont pas push() méthode. Ainsi, dans l'exemple ci-dessus, vous obtiendrez une erreur d'attribut. Voici un autre exemple:

        user = None
print(user.name)

Essayer d'accéder à l'attribut 'name' sur un NoneType L'objet entraînera également cette erreur. Dans tous ces cas, l'objet avec lequel vous travaillez ne prend tout simplement pas en charge l'attribut auquel vous essayez d'accéder. Pour empêcher cette erreur d'interrompre votre programme, envisagez de vérifier les types d'objets.

        type(obj) 
isinstance()

Le intégré dir() La fonction révèle tous les attributs et méthodes valides disponibles sur un objet. L'utiliser sur votre objet vous permettra de savoir quels attributs vous pouvez utiliser.


Python étant une langue facile, il est assez facile d'apprendre les bases de la langue. Maintenant que vous connaissez certaines des erreurs courantes, vous serez en mesure de les déboguer et d'écrire plus de code pythonique sans aucune inquiétude.

★★★★★