Bonjour,
Je pense que l'apprentissage de python passe aussi par la connaissance de ses exceptions.
La documentation et les tutoriels( du moins ceux que j'ai parcouru) se contentent de les lister.
Aussi, je me dis qu'il serait probablement intéressant/pédagogique/ludique/utile (?) de proposer un jeu consistant à les provoquer à la demande:
genre: écris un code provoquant l'exception MachinTruc
Étonnamment, je n'ai rien vu qui propose cette approche. (peut être n'ai-je pas bien cherché?)
Qu'en pensez-vous?
D'autre part, selon vous, quelles sont les exceptions de base à connaitre? (les plus rencontrées chez un débutant)
J'ai listé celles-ci:
Sinon si il y avait un niveau 'expert' au jeu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 errors = ['ZeroDivisionError', 'AttributeError', 'IndexError', 'NameError', 'ImportError', 'KeyboardInterrupt', 'RecursionError', 'StopIteration', 'SyntaxError', 'IndentationError', 'TypeError', 'UnboundLocalError', 'ValueError', 'KeyError']
Quelle exception y mettriez-vous? et quel code proposeriez-vous afin de les provoquer? (pour proposer une correction)
Sinon pour la structure de base du code (s'il y a un intérêt à l'écrire) je pensais à un truc du genre:
Je pourrais agrémenter d'effets visuels/sonores pour rendre la chose plus ludique...
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
19
20
21 errors = ['ZeroDivisionError', 'AttributeError', 'IndexError', 'NameError', 'ImportError', 'KeyboardInterrupt', 'RecursionError', 'StopIteration', 'SyntaxError', 'IndentationError', 'TypeError', 'UnboundLocalError', 'ValueError', 'KeyError'] for excep in errors: print(f"Provoque l'exception {excep}") code = "" print("entre ton code:") for line_code in iter(input, ""): code += line_code + "\n" try: exec(code) except eval(excep): if f"raise {excep}" in code: print('Tricheur raise est interdit!') else: print('bravo') else: print('perdu')
édit: ajout test pour éviter l'usage de raise ...
Partager