orgmode-to-gemini-blog/sources/cil_gometz/lang_fr/20200803T124344__ecrire-une-comptine-en-python-bonjour-le-jour.org

228 lines
5.8 KiB
Org Mode
Raw Normal View History

2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
:PROPERTIES:
2024-11-19 13:49:39 +01:00
:ID: 4c6e26e5-7ec2-4af3-a3c6-fd138db6d96b
2024-11-04 00:26:25 +01:00
:END:
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
#+title: ecrire-une-comptine-en-python-bonjour-le-jour
2024-11-19 13:49:39 +01:00
#+post_ID: 73
#+post_slug: ecrire-une-comptine-en-python-bonjour-le-jour
#+post_url: https://cil-gometz.org/2020/ecrire-une-comptine-en-python-bonjour-le-jour
#+post_title: écrire une comptine en python - Bonjour le jour!
#+post_tags: null
#+post_type: post
#+post_mime_types:
#+post_guid: undefined
#+post_status: publish
#+post_date_published: <2020-08-03T12:43:44>
#+post_date_modified: <2020-08-03T12:48:40>
#+post_index_page_roam_id: 9d3b75d3-cc12-475e-9bd4-de537191408a
#+retrieved_from_db_at: <2024-11-18 16:25:11>
* écrire une comptine en python - Bonjour le jour!
:PROPERTIES:
:CUSTOM_ID: écrire-une-comptine-en-python---bonjour-le-jour
:END:
2024-11-04 00:26:25 +01:00
2024-11-19 13:49:39 +01:00
Salut les Cilleux et cilleuses,
2024-11-04 00:26:25 +01:00
Georges est en vacances, mais je vous propose de pratiquer le python en
fabriquant une comptine que ma fille chantait à la crèche, histoire de
ne pas trop rouiller pendant l'été et de voir comme on peut faire de la
réutilisation. (et pourquoi pas, faire du python avec les enfants :D)
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
Cette comptine étant habituellement utilisée en crèche ou ailleurs pour
que tous les enfants retiennent le prénom des autres.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
On va donc revoir plusieurs éléments déjà vu à la MJC de Gometz: les
fonctions, les boucles et les listes.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
Créez votre fichier python dans votre éditer de texte préféré, perso je
recommande PyCharm, version communautaire qui est donc gratuit et très
complet.
2024-11-19 13:49:39 +01:00
*=sudo snap install pycharm-community --classic=*
2024-11-04 00:26:25 +01:00
donc, dans un fichier comptine_python.py, on veut faire notre comptine
qui va chanter ceci:
2024-11-19 13:49:39 +01:00
#+begin_quote
/#### c'est l'heure de la chanson #####/
/- Par la fenêtre ouverte/ //
/- bonjour, bonjour/ //
/- Par la fenêtre ouverte/
/- bonjour, le jour/
/ /
/- bonjour les pythons!/
/- bonjour les abeilles!/
/- bonjour les fleurs!/
2024-11-04 00:26:25 +01:00
2024-11-19 13:49:39 +01:00
/ /
2024-11-04 00:26:25 +01:00
2024-11-19 13:49:39 +01:00
/- Par la fenêtre ouverte/ //
2024-11-04 00:26:25 +01:00
2024-11-19 13:49:39 +01:00
/- bonjour, bonjour/ //
2024-11-04 00:26:25 +01:00
2024-11-19 13:49:39 +01:00
/- Par la fenêtre ouverte/ //
2024-11-04 00:26:25 +01:00
2024-11-19 13:49:39 +01:00
/- bonjour, le jour/
2024-11-04 00:26:25 +01:00
2024-11-19 13:49:39 +01:00
#+end_quote
2024-11-04 00:26:25 +01:00
nous avons donc une première ligne, un refrain, une suite de bonjours,
et un refrain.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
Le plus simple est de commencer par la première ligne, qu'il suffit
d'imprimer avec print.
2024-11-19 13:49:39 +01:00
#+begin_quote
#+begin_example
print("##### c'est l'heure de la chanson #####")
#+end_example
#+end_quote
2024-11-04 00:26:25 +01:00
Ensuite, nous avons notre refrain. Au lieu de faire plein de print, nous
pouvons faire une fonction qui va imprimer toutes les lignes de ce
refrain , comme ça on pourra l'appeler deux fois pour faire notre
comptine.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
Définissons donc la fonction refrain. On va écrire notre chaîne de
caractères entre une triple paire de guillemets afin de pouvoir écrire
sur plusieurs lignes le contenu de notre print.
2024-11-19 13:49:39 +01:00
#+begin_src EnlighterJSRAW :enlighter-language generic
def refrain():print("""- Par la fenêtre ouverte- bonjour, bonjour- Par la fenêtre ouverte- bonjour, le jour""")
#+end_src
2024-11-04 00:26:25 +01:00
 
Ensuite nous avons plusieurs bonjours dit à un destinataire différent.
Nous pouvons donc faire une fonction qui dit bonjour, définir une liste
de destinataires, et dire bonjour à chacun d'eux avec une boucle.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
Commençons par la liste de destinataires que sont les pythons, les
abeilles et les fleurs. On utilise des crochets pour définir une liste
et l'attribuer à une variable.
2024-11-19 13:49:39 +01:00
#+begin_src EnlighterJSRAW :enlighter-language generic
destinataires = ['les pythons', 'les abeilles', 'les fleurs']
#+end_src
2024-11-04 00:26:25 +01:00
Pour leur dire bonjour on définit une fonction qui va avoir en paramètre
un destinataire, et on va imprimer dans la console un bonjour avec le
nom du destinataire. Pour mélanger ensemble une chaîne de caractère et
une variable, on va utiliser la substitution. ça consiste à écrire dans
la chaîne un %s, et après la chaîne à lui donner quoi substituer avec un
symbole pourcent % et le nom de la variable à substituer. Ici on veut
dire bonjour au destinataire, donc on écrit *% destinataire*. il existe
plusieurs façons de mélanger des variables en python, le terme correct
étant "concaténer". Je vous laisse creuser le sujet si ça vous
intéresse.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
En tous cas, voici ce que donne notre fonction pour dire bonjour.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
def dire_bonjour(destinataire):
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
print('- bonjour %s!' % destinataire)
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
Nous n'avons plus qu'a rassembler le puzzle pour que lors de l'éxécution
de notre fichier de comptine on puisse voir la chanson en entier. Il
nous faut donc encore réaliser une boucle sur chaque élément de notre
liste de destinataires. On va utiliser la boucle *for in* et leur passer
le bonjour.
2024-11-19 13:49:39 +01:00
#+begin_src EnlighterJSRAW :enlighter-language generic
for quelqun in destinataires:dire_bonjour(quelqun)Voilà!
#+end_src
2024-11-04 00:26:25 +01:00
2024-11-19 13:49:39 +01:00
Nous n'avons plus qu'à réorganiser nos lignes et demander au refrain de
s'exécuter avant et après la boucle.
2024-11-04 00:26:25 +01:00
2024-11-19 13:49:39 +01:00
#+begin_src EnlighterJSRAW :enlighter-language python
# comptine de la chanson du bonjourdestinataires = ['les pythons', 'les abeilles', 'les fleurs'] def refrain():print("""- Par la fenêtre ouverte- bonjour, bonjour- Par la fenêtre ouverte- bonjour, le jour""") def dire_bonjour(destinataire):print('- bonjour %s!' % destinataire) print("##### c'est l'heure de la chanson #####") refrain() for quelqun in destinataires:dire_bonjour(quelqun) refrain() # et voilà!
#+end_src
2024-11-04 00:26:25 +01:00
exécuter le fichier python devrait donc nous faire apparaître en console
la chanson complète. Dans pycharm vous pouvez voir ce que ça donne avec
votre script juste en appuyant sur F6.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
Vous pouvez tester ce fichier sur le site repl.it
[[https://repl.it/@tykayn/comptinebonjour#main.py]] et le lancer avec le
bouton "run" pour voir la comptine en console.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
Il existe bien sûr tout un tas de façons de faire cette comptine en
python.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
Vous pouvez essayer aussi en ajoutant d'autres destinataires dans la
liste.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
J'espère que ce petit exercice vous aura amusé.
2024-11-19 13:49:39 +01:00
2024-11-04 00:26:25 +01:00
N'hésitez pas si vous avez des questions :)
2024-11-19 13:49:39 +01:00
Bon Lundi! 
2024-11-04 00:26:25 +01:00