At My Fingertips

Documentation

Simple bonhomme de neige

Dans cette activité, vous apprenez à placer des fonctions que vous avez créées vous-même dans votre propre bibliothèque (nous appelons votre bibliothèque votre "toolbox", et vous pouvez considérer les fonctions comme les outils que vous rassemblez et stockez dans votre "toolbox").

Décrire un graphique

Supposons que vous ayez un ami qui ne voit pas la figure ci-dessous:

Bonhomme de neige

Vous venez de dire Olaf? Olaf le bonhomme de neige? Ce maître de la décomposition et de la composition?

De quoi est fait Olaf? De quoi est fait un bonhomme de neige? Plus précisément, un graphique simplifié en deux dimensions d'un bonhomme de neige? Des cercles! Au moins deux, l'un au-dessus de l'autre!

Alors, allons-y et préparons-nous à créer des cercles.

Définir (ou importer!) une fonction pour créer facilement des cercles

Nous aimerions utiliser une fonction qui peut facilement créer un cercle. Si vous venez de terminer l'activité "Cercles", vous avez créé une telle fonction cercle.

Mais nous avons besoin de cette fonction ici. Et ici, elle n'existe pas. Que faire?

Nous avons trois possibilités:

  1. Réécrire une fonction cercle ici
  2. Copier le code définissant une fonction cercle que nous avons écrit ailleurs, et le coller ici
  3. Soyez malin

Vous avez dit "soyez malin", n'est-ce pas? Mais en même temps, vous pensiez que l'option 2, le copier-coller, était ce que vous feriez en réalité, n'est-ce pas?

Nous sommes d'accord, réécrire du code est un travail. Et nous ne voulons pas avoir à travailler deux fois! L'option 1 n'est donc pas retenue.

Les clones de code sont MAUVAIS

Copier-coller du code, c'est beaucoup moins de travail! Mais c'est mauvais. C'est une sorte d'"odeur de code". Copier-coller du code conduit à de multiples copies du même code (également connu sous le nom de "clones de code"). Et si votre code contient des clones de code, il pue! Il sent tellement mauvais que les autres programmeurs ne s'approcheront pas de vous!

Pourquoi est-il mauvais de copier et de coller du code? Cela ne réduit-il pas le travail? On pourrait le croire, mais à long terme, cela génère presque toujours plus de travail. Le coût du copiage de code peut être immense. Il peut être tel que des projets échouent, que des systèmes sont truffés de bogues et que des avions s'écrasent.

Pourquoi cela? Voilà une bonne question! Retenons cette idée et reportons une discussion plus approfondie à une prochaine activité. Pour l'instant, il suffit de dire rapidement que si vous copiez votre code, vous vous retrouvez avec plusieurs clones. Si vous aviez un bogue dans l'original, vous en avez maintenant plusieurs (et si vous finissez par en trouver un, vous pouvez le corriger, mais pas tous ses clones). De plus, si vous devez modifier la fonctionnalité ou nettoyer votre code, vous devez le faire pour chaque clone. Et comment savoir combien de clones de quels morceaux de code vous avez créés au fil du temps? C'est un véritable cauchemar. Ne le faites pas!

Collecter des outils pour votre "toolbox"

Revenons à l'endroit où vous avez déjà implémenté la fonction cercle. C'est probablement dans le fragment activité PyTamaro iconCercles. Dans cette activité, trouvez la cellule de code qui définit la fonction cercle et cliquez sur la petite icône de boîte à outils en bas à droite.

SaveToToolboxButtonSurrounded.png

Une boîte de dialogue devrait apparaître et vous guider à travers les étapes de l'ajout de votre fonction cercle à votre toolbox. Une fois que vous avez terminé ce processus, revenez ici, et vous verrez la fonction cercle sous "My Toolbox" dans la barre latérale gauche. Elle sera toujours là, et vous pourrez l'utiliser dans n'importe quelle activité.

Si vous cliquez sur l'une des fonctions de votre toolbox dans la barre latérale gauche, vous obtenez une fenêtre contextuelle avec la signature de votre fonction (les paramètres qu'elle prend, la valeur de retour qu'elle produit), avec un exemple de code que vous pouvez exécuter (en fait, votre exemple de code, que vous avez écrit lorsque vous avez placé la fonction dans votre toolbox) pour comprendre (ou vous souvenir) de ce que fait votre fonction.

Utiliser les outils de votre toolbox

Importons maintenant la fonction cercle, et dessinons un cercle jaune:

Loading...

Construisons un bonhomme de neige

Définissons une fonction capable de créer un bonhomme de neige. Nous voulons qu'elle soit assez flexible: il devrait être possible de spécifier le diamètre de la tête et du corps.

Implémentez la fonction bonhomme_de_neige en appelant la fonction cercle que vous venez d'importer ci-dessus. Supposez que dans notre monde, la neige est très propre, donc les bonshommes de neige sont créés en blanc pur.

Loading...

Si tout fonctionne bien, vous devriez voir un bonhomme de neige blanc sur un fond presque blanc. Le voyez-vous à peine? Vous pouvez survoler la zone blanche avec votre souris et l'arrière-plan derrière le bonhomme de neige se transforme en un damier gris. De cette façon, votre bonhomme de neige devrait ressortir un peu plus.

Neige poussiéreuse

Saviez-vous qu'en Suisse et dans toute l'Europe la [neige devient parfois jaunâtre ou même rougeâtre] (https://www.swissinfo.ch/fre/quelque-180%27000-tonnes-de-poussi%c3%a8res-du-sahara-dans-le-ciel-suisse/74607802) ? C'est à cause de la poussière qui est transportée du désert du Sahara en Afrique de la Méditerranée jusqu'aux Alpes! Voyons à quoi ressemble notre bonhomme de neige après avoir été recouvert d'un peu de poussière du désert du Sahara.

Modifiez la cellule de code ci-dessus:

  • Importez la fonction couleur_rgb.
  • Définissez un nom couleur_neige et assignez-lui une couleur orangée que vous créez (par exemple, avec couleur_rgb(255, 245, 210)).
  • Remplacez l'utilisation du nom blanc par couleur_neige
  • Supprimer blanc des noms importés

Pour changer la couleur du bonhomme de neige, vous devez modifier la fonction bonhomme_de_neige. Pourquoi? Parce que la fonction bonhomme_de_neige n'a pas de paramètre où vous pouvez passer la couleur de la neige. Lorsque nous avons créé la fonction, nous avons supposé que la neige serait toujours parfaitement blanche. Nous n'avions pas prévu que la poussière de sable du désert serait transportée d'un continent à l'autre et finirait par ternir la blancheur de la neige.

Lors de la création d'une fonction, c'est à nous de décider ce qui est constante et ce qui est variable: pour les aspects flexibles, nous voulons introduire des paramètres, afin que la personne qui appellera notre fonction par la suite puisse fournir les valeurs souhaitées.

Pour notre bonhomme de neige, gardons la couleur de la neige constante.

Définir des noms à l'intérieur d'une fonction

Vous avez peut-être remarqué que nous avons défini deux noms, à l'intérieur de notre fonction bonhomme_de_neige, pour faire référence à la tête et au corps. Cela nous a permis d'écrire l'expression très lisible au_dessus(tete, corps) pour composer notre bonhomme de neige à partir des deux cercles connus sous ces noms.

Ces deux noms sont locaux à notre fonction bonhomme_de_neige. Le code qui se trouve en dehors de la fonction ne saura jamais que ces deux noms existent. En fait, le code extérieur à la fonction bonhomme_de_neige ne devrait pas avoir à s'inquiéter du fait qu'un bonhomme de neige a été composé à partir de ces deux cercles. du fait qu'un bonhomme de neige est composé d'une tete et d'un corps.

Notre bonhomme de neige mérite-t-il d'être réutilisé?

Si vous le souhaitez, vous pouvez également stocker votre fonction bonhomme_de_neige dans la toolbox. Il suffit de cliquer sur le bouton tools en bas de la cellule de code ci-dessus. Cependant, il est préférable de ne pas le faire. Pourquoi? Cette fonction bonhomme_de_neige mérite-t-elle vraiment de figurer dans votre toolbox? Allez-vous vraiment la réutiliser ailleurs? N'est-elle pas un peu trop spécialisée? Si vous allez composer une sorte de paysage hivernal, avec des boules de neige, des bonshommes de neige, des luges, des skis et des snowboards, est-ce que cette fonction spécifique bonhomme_de_neige serait quelque chose que vous voudriez appeler? Si oui, allez-y, et rangez-la dans votre toolbox (vous pourrez toujours la retirer plus tard). Si non, gardez votre toolbox petite et douce, et réservez-la à des fonctions plus généralement utiles (comme une fonction pour créer un carré).

Ce que vous avez appris

Vous avez composé un bonhomme de neige simple en plaçant deux cercles l'un au-dessus de l'autre.

Plus important encore, vous avez appris à créer et à utiliser votre propre bibliothèque! Votre toolbox.

Bien qu'il soit amusant de collectionner de nombreux outils dans le seul but d'agrandir sa collection (collectionnez-vous les timbres-poste? les chaussures? les voitures? les vêtements? les avions?), votre toolbox n'est pas seulement un symbole de statut social!

Votre toolbox est utile et vous facilitera grandement la vie à l'avenir! Pourquoi? Parce que vous pouvez importer n'importe quelle fonction de votre toolbox et l'utiliser pour faire son travail, où que vous soyez! Tout ce dont vous avez besoin, c'est d'accéder à votre toolbox. Et sur ce site web, vous avez toujours accès à votre toolbox! Et si vous souhaitez l'utiliser en dehors de ce site web, il vous suffit d'exporter une activité en tant que fichier Python, et votre toolbox sera incluse dans votre téléchargement.


This activity has been created by LuCE Research Lab and is licensed under CC BY-SA 4.0.

Simple bonhomme de neige

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version 0ac3f58 (Wed, 16 Oct 2024 16:07:53 GMT)