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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    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 confirmé
    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 : 44
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    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 confirmé
    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 : 44
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    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 confirmé
    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 : 44
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    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 éclairé
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 54
    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