Je suis un débutant en code et j'ai commencé à apprendre le Python.
J'en suis aux exceptions dans le cours sur le Python, et dans un excercice il est expliqué comment afficher un message spécifique pour chaque erreur retournée . J'ai alors tenté de le faire (sans regarder le cours ):
import os
numerateur=1
denominateur=45
resultat=0
print("Merci d'entrer le numérateur")
numerateur=input()
print("Merci d'entrer le dénominateur")
denominateur=input()
numerateur=int(numerateur)
denominateur=int(denominateur)
resultat=int(resultat)
resultat= numerateur / denominateur
try:
resultat= numerateur / denominateur
except NameError:
Print("La variable numérateur ou dénominateur n'a pas été définie")
except TypeError:
print("Merci d'entrer les variables en chiffres")
except ZeroDivisionError:
print("La division par 0 est impossible")
print(resultat)
os.system("pause")
Quelqu'un peut il m'expliquer le problème ?
Merci
- Edité par FrancescoS. 29 décembre 2015 à 21:04:35
Quand tu as une erreur en Python il faut aussi que tu nous copie-colle le traceback (c'est en gras et en italique, c'est pas pour faire joli :p). Le traceback c'est le message d'erreur affiché par la console avant que ton programme ne s'arrête.
A première vue ton erreur peut venir du "p" majuscule à la ligne n°18.
Quand tu as une erreur en Python il faut aussi que tu nous copie-colle le traceback (c'est en gras et en italique, c'est pas pour faire joli :p). Le traceback c'est le message d'erreur affiché par la console avant que ton programme ne s'arrête.
A première vue ton erreur peut venir du "p" majuscule à la ligne n°18.
Merci Nelimee.
La fenêtre se refermait immédiatement après l'erreur, du coup j'ai fait une vidéo pour pouvoir lire le traceback qui disait:
Traceback(most recent call last):
File "C:\\Users\MonNom\Desktop\testsPython\new 1.py", line 14, in <module>
resultat= numerateur/denominateur
Zero divison error: division by 0.
Pourtant, j'ai bien mis un except qui a été reconnu par Notepad!
Une idée ?
EDIT: Je viens de remarquer que je devais mettre le print de la ligne 24 avec else, mais cela ne résout pas le problème
- Edité par FrancescoS. 30 décembre 2015 à 21:32:09
L'exept ne marche que pour ce qui est dans le bloc try ! Regarde, la ligne 14 est juste avant. En fait, tu as mis deux fois la division: une dans le bloc try, comme il faut, et une devant: enlève cette dernière division et l'erreur sera réglée !
(2b || !2b) ? that : is->theQuestion - Hamlet
Je ne trouve pas l'erreur
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.