orgmode-to-gemini-blog/gemini-capsules/non_trié/20200803124344_cil_11_ecrire-une-comptine-en-python-bonjour-le-jour.gmi

604 lines
8.6 KiB
Plaintext
Raw Normal View History

2024-11-08 17:40:06 +01:00
# écrire une comptine en python - Bonjour le jour!
```html
<div>
```
Salut les Cilleux et cilleuses,
```html
</div>
```
```html
<div>
```
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)
```html
</div>
```
```html
<div>
```
Cette comptine étant habituellement utilisée en crèche ou ailleurs pour que tous les enfants retiennent le prénom des autres.
```html
</div>
```
```html
<div>
```
```html
</div>
```
```html
<div>
```
On va donc revoir plusieurs éléments déjà vu à la MJC de Gometz: les fonctions, les boucles et les listes.
```html
</div>
```
```html
<div>
```
```html
</div>
```
```html
<div>
```
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.
```html
</div>
```
```html
<div>
```
**`sudo snap install pycharm-community --classic`**
```html
</div>
```
```html
<div>
```
```html
</div>
```
```html
<div>
```
donc, dans un fichier comptine_python.py, on veut faire notre comptine qui va chanter ceci:
```html
</div>
```
```html
<div>
```
```html
</div>
```
>
> ```html
> <div>
> ```
>
>
> *#### c'est l'heure de la chanson #####*
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- Par la fenêtre ouverte* **
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- bonjour, bonjour* **
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- Par la fenêtre ouverte*
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- bonjour, le jour*
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> * *
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- bonjour les pythons!*
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- bonjour les abeilles!*
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- bonjour les fleurs!*
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> * *
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- Par la fenêtre ouverte* **
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- bonjour, bonjour* **
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- Par la fenêtre ouverte* **
> ```html
> </div>
> ```
>
>
>
> ```html
> <div>
> ```
>
>
> *- bonjour, le jour*
> ```html
> </div>
> ```
```html
<div>
```
```html
</div>
```
```html
<div>
```
nous avons donc une première ligne, un refrain, une suite de bonjours, et un refrain.
```html
</div>
```
```html
<div>
```
Le plus simple est de commencer par la première ligne, qu'il suffit d'imprimer avec print.
```html
</div>
```
>
> ```
> print("##### c'est l'heure de la chanson #####")
> ```
>
>
>
```html
<div>
```
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.
```html
</div>
```
```html
<div>
```
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.
```html
</div>
```
``` {.EnlighterJSRAW enlighter-language="generic"}
def refrain():print("""- Par la fenêtre ouverte- bonjour, bonjour- Par la fenêtre ouverte- bonjour, le jour""")
```
 
```html
<div>
```
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.
```html
</div>
```
```html
<div>
```
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.
```html
</div>
```
``` {.EnlighterJSRAW enlighter-language="generic"}
destinataires = ['les pythons', 'les abeilles', 'les fleurs']
```
```html
<div>
```
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.
```html
</div>
```
```html
<div>
```
En tous cas, voici ce que donne notre fonction pour dire bonjour.
```html
</div>
```
```html
<div>
```
def dire_bonjour(destinataire):
```html
</div>
```
```html
<div>
```
print('- bonjour %s!' % destinataire)
```html
</div>
```
```html
<div>
```
```html
</div>
```
```html
<div>
```
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.
```html
</div>
```
```html
<div>
```
```html
</div>
```
``` {.EnlighterJSRAW enlighter-language="generic"}
for quelqun in destinataires:dire_bonjour(quelqun)Voilà!
```
```html
<div>
```
Nous n'avons plus qu'à réorganiser nos lignes et demander au refrain de s'exécuter avant et après la boucle.
```html
</div>
```
``` {.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à!
```
```html
<div>
```
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.
```html
</div>
```
```html
<div>
```
```html
</div>
```
```html
<div>
```
Vous pouvez tester ce fichier sur le site repl.it
=> https://repl.it/@tykayn/comptinebonjour#main.py https://repl.it/@tykayn/comptinebonjour#main.py
{target="_blank" rel="noreferrer nofollow noopener"} et le lancer avec le bouton "run" pour voir la comptine en console.
```html
</div>
```
```html
<div>
```
```html
</div>
```
```html
<div>
```
Il existe bien sûr tout un tas de façons de faire cette comptine en python.
```html
</div>
```
```html
<div>
```
Vous pouvez essayer aussi en ajoutant d'autres destinataires dans la liste.
```html
</div>
```
```html
<div>
```
J'espère que ce petit exercice vous aura amusé.
```html
</div>
```
```html
<div>
```
N'hésitez pas si vous avez des questions :)
```html
</div>
```
Bon Lundi!
# Métadonnées
:PROPERTIES: :ID: d2862b1d-5ce7-4ae4-be80-8d130dd029a0 :END: #+title: ecrire-une-comptine-en-python-bonjour-le-jour #+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_type: post #+post_mime_types: #+post_guid:
=> https://www.cil-gometz.org/?p=73
#+post_status: publish #+post_date_published: <2020-08-03 12:43:44> #+post_date_modified: <2020-08-03 12:48:40> #+post_index_page_roam_id: [[id:832dfcd2-a306-4488-b8c1-7445fd9c331a][undefined]] #+retrieved_from_db_at: <2024-11-07 22:57:54>