At My Fingertips
Rapid Playground
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").
Supposons que vous ayez un ami qui ne voit pas la figure ci-dessous:
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.
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:
cercle
icicercle
que nous avons écrit ailleurs, et le coller iciVous 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.
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!
Revenons à l'endroit où vous avez déjà implémenté la fonction cercle
.
C'est probablement dans le fragment activité
Cercles.
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.
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.
Importons maintenant la fonction cercle
, et dessinons un cercle jaune:
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.
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.
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:
couleur_neige
et assignez-lui une couleur orangée que vous créez (par exemple, avec couleur_rgb(255, 245, 210)
).blanc
par couleur_neige
blanc
des noms importésPour 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.
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
.
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é).
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
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version 445a0ac (Sat, 23 Nov 2024 21:53:22 GMT)