LE POST IT À RALLONGE
Une petite note par lerautal
1. QUELLE SONT LEURS POSITIONS ?
Ils sont revenus dans le jardin pour voir comment poussent le Sempervivum
et la Sauge.
Le temps est trop sec pour la Sauge, alors que l'autre plante, qui est une
succulente s'accomode bien de l'été.
Après un arrosage bien venu, Françoise interpelle Thomas.
" Tu n'as pas oublié que tu devais nous
montrer comment localiser les plantes "virtuellement" avec un programme
informatique ?
- C'est facile. Sûrement beaucoup plus que de réaliser le drone."
Inès en profite pour donner quelques informations sur l'avancement de son
travail.
"J'ai trouvé un jouet un peu amélioré,
du genre de celui-ci :
Il est possible d'y placer nos propres
cartes électroniques : carte-mère minimaliste, émetteur/récepteur radio
(pour les puces et les balises), GPS.
Moins de 100 euros. Mais il va falloir que nous ajoutions l'intelligence
à cette mécanique.
- Intelligence qui paiera nos salaires...
- Exactement."
De retour au local, Thomas explique comment localiser chaque plante (ou le
chasseur Schmoll...)
"Le Python de base est capable
d'effectuer des opérations sur plusieurs types de données...
- ????
- Voilà :
- Les nombres, qu'ils soient entiers
(comme 1 2 3 1000000), à virgules (on dit
"flottants") tels que 1.456 678.7603 ou 0.00011 (en
"Python" le point remplace la virgule de chez nous).
- Les séquences de lettres (ou
chiffres et lettres) telles que "cheval" "tapis"
"orphéon512".
Vous remarquerez les guillemets.
- Mais aussi les listes
(et ressemblants que l'on laissera de côté pour le moment)."
Françoise réagit :
"Liste
? comme liste de commissions ? -
- Presque. Avant d'aller faire tes achats tu n'utiliserais pas un Post
it ?
- Oui."
Thomas va chercher un paquet de ces petits papiers aide-mémoire et en
retire 18 qu'il assemble à la queue leuleu, réalisant une sorte de bande
continue.
D'un côté de la bande et sur chaque Post it il écrit un numéro : 0 sur le
premier, 1 sur le suivant, ...
Puis il retourne la bande et demande :
"A quelle position est placée la Sauge ?
- En 9,
- On lui donnera le matricule 520. Et le Sempervivum ?
- En 15 (comme le Chasseur qui marche au pas).
- On lui donnera le matricule 640."
Joignant le geste à la parole, il incrit 520 à l'envers du Post it qui
porte le numéro 9 et 640 au dos de celui qui porte le numéro 15.
Ines a compris elle lui demande :
"Quel est le numéro du Post it sur
lequel tu as écrit 520 ?
- Facile... je cherche 520 puis je regarde à l'envers de la bande :
9..."
- Oui, mais cela, c'est de l'informatique "papier", tu triches.
- Avant de programmer il est toujours bon de simuler par des moyens
matériels et sensibles."
2. LA SOLUTION INFORMATIQUE
"La ligne de culture peut être
représentée par une liste au sens de Python.
Elle comporte 18 positions. Certaines sont inoccupées pour le moment et,
par commodité, on va considérer qu'elles contiennent zéro.
En position 9 de la liste on va entrer 520.
En position 15 on va entrer 640.
Puis on interrogera la liste pour qu'elle donne la position de chacun
des deux nombres."
Le programme :
(En bleu les explications, en rouge le code Python)
Création d'une liste de 18 éléments égaux à
zéro.
>>> ligne_de_culture = 18*[0]
Affichage du contenu de la liste. Remarquer les crochets et les
virgules.
>>> ligne_de_culture
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
On vérifie si avec print c'est pareil. Eh
oui, au moins ici.
>>> print ligne_de_culture
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
On remplace le zéro de la position 9 par le
numéro de la Sauge.
>>> ligne_de_culture[9] = 520
Pareil pour le Sempervivum.
>>> ligne_de_culture[15] = 640
On affiche le contenu de la liste.
>>> ligne_de_culture
[0, 0, 0, 0, 0, 0, 0, 0, 0, 520, 0, 0, 0, 0, 0, 640, 0, 0]
Et maintenant on recherche la position
occupée par 520 dans la liste.
>>> ligne_de_culture.index(520)
9
De même pour 640.
>>> ligne_de_culture.index(640)
15
>>>
3. REMARQUES
- Je trouve que la syntaxe (façon de noter) qui permet de créer une
liste pleine de zéros est très concise et élégante : ligne_de_culture
= 18*[0]
Chapeau Python.
- La liste au sens de Python est un objet_outil
(rappelez-vous les clés). Parmi les outils associés à l'objet
il s'en trouve un, appelé index,
qui peut retrouver un nombre (ou un texte) dans la liste. C'est ce qui
autorise ligne_de_culture.index(640)
4. COMPLÉMENTS
Limites de la fonction index.
Dans le programme suivant on a entré deux fois la valeur 520 dans la liste
:
ligne_de_culture = 18*[0]
ligne_de_culture[9]
= 520
ligne_de_culture[12]
= 520
print ligne_de_culture.index(520)
Comme résultat on n'obtient que le premier : 9
Afficher le contenu d'une position.
Si l'on veut récupérer le contenu d'une position (d'un "Post it"), on
indique celle-ci entre crochets :
ligne_de_culture[15]
donnera 640.
On pourra également récupérer ce contenu dans une variable :
valeur =
ligne_de_culture[15]
Et même imprimer cette valeur avec une information textuelle :
print "En position 15, la valeur est :
",valeur
Ce qui permet de comprendre que print offre l'avantage d'être plus souple.
Echanger le contenu de deux positions.
Ici, l'on a besoin d'une variable pour conserver provisoirement l'une des
valeurs.
Je l'ai appelée
en_attente
# le
programme avant modification
ligne_de_culture=18*[0]
ligne_de_culture[9] =520
ligne_de_culture[15] =640
print ligne_de_culture
# l'échange
en_attente = ligne_de_culture[9]
ligne_de_culture[9] = ligne_de_culture[15]
ligne_de_culture[15] = en_attente
print ligne_de_culture