Coding for KidsCoding for Kids
Niveaux CréatifsDéfisGuide de l'Enseignant
Voter pour les fonctionnalités
Cours avancé de développement Python
Chapitre
>
Niveau

Gestion des exceptions
Gestion des exceptions

Objectif

Emballez les fournitures dans des boîtes et interceptez toutes les erreurs éventuelles en utilisant les exceptions.

Il y a plusieurs fournitures d'urgence qui doivent être emballées dans des kits et stockées dans des caisses pour une utilisation ultérieure. Faire cela est assez simple et peut être réalisé en utilisant des fonctions courantes que vous avez apprises, cependant, parfois, les choses ne se passent pas comme prévu. En programmant, vous avez peut-être remarqué que des erreurs apparaissent parfois à l'écran, et des marques rouges se montrent dans l'éditeur à l'endroit où l'erreur s'est produite. Vous pouvez remédier à cela en configurant les blocs de code try et except.

Ces blocs de code sont utilisés pour définir des exceptions et intercepter les erreurs avant qu'elles n'interrompent votre code. Leur fonctionnement est le suivant : vous utilisez try sur un code qui est problématique ou susceptible de provoquer une erreur, et vous utilisez except pour remplacer ce code par un autre en cas d'erreur, par exemple:

#The try code block attempts to run a code try: number + number + string #This code yeilds an error, you can't sum numbers with string except: #If an error occurs the except code block is run instead number + number + number #The code is switched out by a sum of three numbers instead

Pour commencer, récupérez tous les matériaux sur le terrain, à savoir : des bidons d'eau, "thread" et trois couvertures colorées : "blue blanket", "red blanket", "green blanket". Commencez par vous rendre en haut de la carte et prenez les trois couvertures, marchez jusqu'à la marque X claire et utilisez la fonction collect() pour obtenir "thread" du conteneur. Ensuite, rendez-vous en bas de la carte pour récupérer tous les bidons d'eau.

Une fois tout collecté, dirigez-vous vers la marque X sombre au-dessus du tapis bleu pour commencer à placer les matériaux que vous venez de récupérer. Commencez par ajouter l'eau et le thread dans des variables avec respectivement 2 et 3 unités, comme ceci: water_can = 2 et thread = 3. Ensuite, définissez les kits en tant que variables en additionnant les variables précédemment créées avec les couvertures colorées selon le format suivant:

blue_kit = water_can + thread + "blue blanket" red_kit = water_can + thread + "red blanket" green_kit = water_can + thread + "green blanket" # Add all elements together into kits for ease of storage

Une fois les kits assemblés dans les variables blue_kit, red_kit et green_kit, il est temps de les placer dans les caisses de la couleur correspondante. Cependant, vous avez peut-être remarqué que le code renvoie une erreur. Mais pourquoi ? Tout est en ordre et les instructions ont été suivies. Parfois, malgré une approche intuitive, les choses ne fonctionnent pas comme prévu. Dans ce cas, vous ne pouvez pas additionner un nombre avec une chaîne de caractères au sein d'une variable.

Alors, comment allons-nous remédier à ce problème ? En utilisant les blocs de code try / except pour intercepter l'erreur et la convertir en une valeur de remplacement appropriée. Pour chacune des trois variables, appliquez ces exceptions qui, en cas d'erreur, remplacent le code par une valeur numérique au lieu d'une chaîne spécifique.

try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1

Bien que dans ce cas nous soyons au courant de l'erreur, il existe des situations où les valeurs contenues dans les variables ne sont pas aussi simples ou peuvent varier en fonction de certaines conditions, ce qui en fait un outil utile pour le dépannage ou pour attraper les erreurs d'exécution.

Terminez le niveau en vous rendant vers les marques X sombres situées sur les tapis colorés, en faisant face aux caisses et en utilisant la fonction place() pour déposer les variables de kit de la couleur correspondante sur les caisses appropriées.

Livre de Code