Désactiver les messages d'erreur interpréteur
Résolu
MemeTech
Messages postés
90
Statut
Membre
-
MemeTech Messages postés 90 Statut Membre -
MemeTech Messages postés 90 Statut Membre -
Bonjour !
Je travaille sur une application de mathématiques en ligne de commande sur l'interpréteur Python en mode interactif : mon script charge toutes les fonctions de mon applis, variables, etc...
L'utilisateur peut alors utiliser ces fonctions comme sur une calculette comme un programmeur Python !
Seul souci, j'aimerais désactiver les messages d'erreur, ou tout du moins, les changer pour que l'utilisateur y comprenne quelque chose, s'il n'est pas programmeur.
Par exemple, il utilise une vaiable qui n'existe pas, mon programme pourra lui dire quelle est son erreur plutôt qu'un :
>>> mlg
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'mlg' is not defined
Comment faire ?
Merci !
Je travaille sur une application de mathématiques en ligne de commande sur l'interpréteur Python en mode interactif : mon script charge toutes les fonctions de mon applis, variables, etc...
L'utilisateur peut alors utiliser ces fonctions comme sur une calculette comme un programmeur Python !
Seul souci, j'aimerais désactiver les messages d'erreur, ou tout du moins, les changer pour que l'utilisateur y comprenne quelque chose, s'il n'est pas programmeur.
Par exemple, il utilise une vaiable qui n'existe pas, mon programme pourra lui dire quelle est son erreur plutôt qu'un :
>>> mlg
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'mlg' is not defined
Comment faire ?
Merci !
A voir également:
- Désactiver les messages d'erreur interpréteur
- Desactiver rond bleu whatsapp - Guide
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Comment savoir si quelqu'un lit mes messages sur whatsapp - Accueil - Messagerie instantanée
- Voir les messages supprimés sur whatsapp - Guide
- Desactiver uac - Guide
4 réponses
Bonjour, un seul mot : Exception
Donc à toi de gérer correctement via tes fonctions les arguments reçus en attrapant les erreurs avec des exceptions.
Donc à toi de gérer correctement via tes fonctions les arguments reçus en attrapant les erreurs avec des exceptions.
Justement : c'est l'interpréteur Python qui gère les exceptions avec les variables comme dans mon exemple, comment puis-je gérer à sa place ce type d'exception ?
En recherchant, j'ai bien trouvé quelque chose qui puisse fonctioner, la fonction exec (), mais elle n'est pas adaptée à mon programme, car bon nombre de mes fonctions renvoient une valeur et exec () ne renvoie pas de valeur...
C'est bien dommage, car j'aurais pu ainsi gérer ces exceptions avec quelque chose de ce style :
Peut-être qu'une autre fonction pourrait convenir ?
Merci !
[EDIT] : Je crois avoir trouvé un truc interessant du côté de la fonction eval () !
J'ai utilisé le même code que ci-dessus en remplaçant exec () par eval () et ça a l'air de fonctionner pour le moment !
Dites-moi si cela fait trop bricolage voire est dangereux !
En recherchant, j'ai bien trouvé quelque chose qui puisse fonctioner, la fonction exec (), mais elle n'est pas adaptée à mon programme, car bon nombre de mes fonctions renvoient une valeur et exec () ne renvoie pas de valeur...
C'est bien dommage, car j'aurais pu ainsi gérer ces exceptions avec quelque chose de ce style :
# Les fonctions de mon programme... while True: # Boucle principale cmd = input (">>> ") result = 0 # On initialise result try: result = exec (cmd) except NameError: # Réagir à cette exception # Gestion de toutes les autres exceptions de la même façon... if result is not None: # Car toutes les fonctions ne renvoient pas de résultat, il faut vérifier que exec () renvoie bien quelque chose print (result) # Et on continue à l'infini tant que l'utilisateur n'entre pas exit () ou quit ()
Peut-être qu'une autre fonction pourrait convenir ?
Merci !
[EDIT] : Je crois avoir trouvé un truc interessant du côté de la fonction eval () !
J'ai utilisé le même code que ci-dessus en remplaçant exec () par eval () et ça a l'air de fonctionner pour le moment !
Dites-moi si cela fait trop bricolage voire est dangereux !
bonjour, que fait ton script et que fait l'utilisateur? peux-tu donner un exemple?
si tu laisses l'utilisateur rentrer un programme python, je ne vois pas comment tu pourrais intervenir si son programme n'est pas correct.
si tu laisses l'utilisateur rentrer un programme python, je ne vois pas comment tu pourrais intervenir si son programme n'est pas correct.
Dans mon programme, l'utilisateur peut utiliser des fonctions mathématiques de base, mais aussi certaines plus spécifiques telles que prime (x) qui indique si x est premier et bien d'autres encore.
Il peut égalemnt créer et gérer des objets comme des volumes, des vecteurs ou encore des polynômes.
Il fait tout comme s'il programmait, mais sans forcément le savoir.
Avancé ?
Au pire, vous pouvez toujours tester la dernière version stable en téléchargement sur mon site web, cela vous permettera de vous faire une meilleure idée en testant directement l'appli.
Bonne nuit !
[EDIT] : Je suis contraint de faire un mixte entre eval () et exec () : eval ne fonctionne pas pour créer les objets, je le fais donc avec exec (), tout le reste se fait avec eval ()
Il peut égalemnt créer et gérer des objets comme des volumes, des vecteurs ou encore des polynômes.
Il fait tout comme s'il programmait, mais sans forcément le savoir.
Avancé ?
Au pire, vous pouvez toujours tester la dernière version stable en téléchargement sur mon site web, cela vous permettera de vous faire une meilleure idée en testant directement l'appli.
Bonne nuit !
[EDIT] : Je suis contraint de faire un mixte entre eval () et exec () : eval ne fonctionne pas pour créer les objets, je le fais donc avec exec (), tout le reste se fait avec eval ()