IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

chercher la signification des messages d'erreurs


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut chercher la signification des messages d'erreurs
    Salut,

    Je débute dans la programmation. Quel est le meilleurs moyen de connaitre la signification d'un message d'erreur ?

    Y a t il une liste sur le site officiel ? Car je ne l'ai pas trouvée ?

    J'utilise IDLE et à priori il n'y a rien dans l'aide à ce sujet.

    Comment faites vous pour comprendre la signification des messages d'erreurs ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    En général, le message d'erreur donné suffit à lui-même. Ils sont en général assez explicites avec la ligne où le plantage a eu lieu et la cause de l'erreur.
    Si ca ne suffit pas, je fais du débogage "à la main" en affichant à l'écran juste avant les propriétés de l'objet et les valeurs des variables qui auraient pu être la cause de plantage.

    Sinon, tu as ici la liste des exceptions possibles:
    http://docs.python.org/lib/module-exceptions.html

    Après il existe des modules (mais je ne les maitrise pas et ne les utilisent pas - enfin, il s ne sont en général pas compliqés du tout à utiliser)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Qu'est ce qu'une exception ? Une forme d'erreur ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    print "entrez une note entre 0 et 80"
     
    a=raw_input()
    n=int(a)
     
    while (n<0) or (n>80):
        print "note non valide"
        a=raw_input()
        n=int(a)
     
    print "note valide"
    Quand j'exécute ceci j'obtient ce message:
    entrez une note entre 0 et 80
    3
    note valide
    >>>
    entrez une note entre 0 et 80
    5555
    note non valide

    Traceback (most recent call last):
    File "E:/python/programme_python/revision/revision 6_13.py", line 9, in ?
    n=int(a)
    ValueError: invalid literal for int():
    Quand la note est bonne cela fonctionne mais j'ai un problème quand je prends un mauvais chiffre.

    J'aimerai comprendre "invalid literal" .
    Ainsi je comprends "syntax error" et j'aurai voulu un petit condensé des différents types d'erreur pour savoir où chercher.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    En quoi consiste ces modules dont tu as parlé ?

    Permettent ils d'aider à la correction d'erreurs ?

    Mes questions peuvent sembler élémentaires. Je travaille avec le bouquin de Gérard Swinnen "apprendre à programmer avec python" et j'en suis au début des fonctions donc beaucoup de notions m'échappent.

  5. #5
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    une exception est généré quand une erreur est détectée.

    Ton programme plante parce que après avoir entré 5555, tu as encore taper sur la touche ENTREE => "a = Touche entrée"

    D'où l'intérêt de faire des affichages de valeurs pour débogguer

    L'exception ValueError: invalid literal for int(): n'est pas très dur à comprendre, cela signifie simplement que la fonction int n'est pas capable de transformer en entier le paramètre passé à la fonction ( qui ici est la touche ENTREE)

  6. #6
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Merci,c'est bien cela, quand j'entre une valeur sans taper "entrée" cela fonctionne normalement.

    Comment faire pour ne pas générer d'erreur en tapant "entrée" ?

    Par exemple pour que le curseur passe seulement à la ligne ?

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    Comme indiqué dans le lien que guigui t'as donné

    http://python.developpez.com/cours/D...info.exception

    il suffit de mettre un bloc try...except
    pour revenir a la ligne, rajoute un \n

    vite fait sans reflechir ca donnerai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    def demanderNote():
        try:
            a=raw_input()
            n=int(a)
     
        except:
            n = 0
     
        return n
     
    print "entrez une note entre 0 et 80" 
    n = demanderNote()   
    while (n<0) or (n>80):
         print "note non valide \n"
         n = demanderNote()
     
     print "note valide \n"
    pour etre encore mieux il faut peut etre mettre :

    mais à verifier si ca existe.....

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Je vous remercie.

    Avant de mettre ce sujet en résolu, je repose la question d'un petit glossaire qui pourrait m'aiguiller quand aux messages d'erreur ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste de signification des messages d'erreurs
    Par Gilbert Geyer dans le forum Langage
    Réponses: 7
    Dernier message: 07/01/2008, 16h53
  2. [GUI] Gestion des messages d'erreurs
    Par agent007se dans le forum C++
    Réponses: 11
    Dernier message: 28/07/2006, 20h52
  3. gestion des messages d'erreurs
    Par keibenoit dans le forum Access
    Réponses: 2
    Dernier message: 31/05/2006, 14h49
  4. Réponses: 4
    Dernier message: 11/05/2006, 11h28
  5. Configurer la langue des messages d'erreur
    Par Invité dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 08/09/2005, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo