Bonjour à tous,
Quel est l'intérêt de mettre un
avec unCode:except ValueError:
Si c'est pour que le print ne s'affiche pas?Code:print("mauvaise réponse")
Avec mes remerciements.
Version imprimable
Bonjour à tous,
Quel est l'intérêt de mettre un
avec unCode:except ValueError:
Si c'est pour que le print ne s'affiche pas?Code:print("mauvaise réponse")
Avec mes remerciements.
Salut,
Le "print" ne s'affiche pas, c'est une instruction/fonction qui sera exécutée/appelée (ou pas) pour faire une opération bien définie.
Une instruction/appel de fonction peut faire partie d'un bloc d'instructions qui sera exécuté sous certaines conditions/exceptions.
Et si un bloc d'instructions n'est pas exécuté, c'est que les conditions ou l'exception correspondante ne sont pas vérifiées.
Tout çà pour dire, que des instructions sorties de leur contexte n'ont pas trop de sens...
- W
Salut,
Si le print() est dans le bloc de l'except il s'affichera en cas d'erreur ValueError.
Qu'est-ce qui te fais penser que ce print ne s'affichera pas ?
Je n'ai pas le print qui s'affiche
voici mon petit code entier
et l'erreurCode:
1
2
3
4
5
6
7
8 annee = input("Saisissez une chiffre :") annee = int(annee) try: assert annee > 3 print("bonne reponse") except ValueError: print("mauvaise reponse")
merci!Code:
1
2
3
4
5
6 Saisissez une chiffre :2 Traceback (most recent call last): File "C:/Users/jo/Desktop/PROJETS PYTHON/assertion.py", line 4, in <module> assert annee > 3 AssertionError
Bonjour,
C'est normal. Quand la condition de "assert" est fausse, une exception AssertionError (et non ValueError) est générée (c'est dans la doc!).
Donc: remplace ValueError par AssertionError dans le except, et ça marchera.
Salut,
ValueError est l'exception que lèverait int si la chaine de caractère saisie n'est pas un nombre.
Un code plus correct serait:
dit autrement, si une opération peut lever une exception, on l'emballe dans un try...except... et on gère les exceptions correspondantes. Et on évite de mettre trop d'instructions pouvant générer des exceptions dans le même bloc, sinon, ce sera difficile à gérer (quand on doit continuer l'exécution du programme plutôt que d'afficher une erreur).Code:
1
2
3
4
5
6
7
8
9
10
11
12 annee = input("Saisissez une chiffre :") try: annee = int(annee) except ValueError: print("veuillez saisir un nombre") else: try: assert annee >= 3 except AssertionError: print ('mauvaise reponse') else: print ('bonne reponse')
On pourrait écrire:
mais ce n'est pas très propre (dans le cas général).Code:
1
2
3
4
5
6
7
8
9 try: annee = int(annee) assert annee >= 3 except ValueError: print("veuillez saisir un nombre") except AssertionError: print ('mauvaise reponse') else: print ('bonne reponse')
- W