Wednesday, November 28, 2012

Python sur Raspberrypi 01

Comme promis, apprenez Python. Et bien sur, on commence au commencement...

Pour les experts, il n'y a pas grand chose a voir. Mais si vous voyez continuellement une référence a Python dans vos recherches sur le Raspberry Pi, et vous vous demandez c'est quoi l'histoire, alors bienvenue a notre série de tutoriels sur le langage de programmation Python.

Sites

Alors tout d'abord, le site officiel pour le langage, c'est: python.org

Mais pour les francophones, il y a deux liens plus facile a utiliser, car tout en français:

wiki.python.org en français

wikipython.flibuste.net

Livres


Si vous débutez, il y a beaucoup d'options de livres sur Python en français.

Si vous préférez le papier, sur Amazon.fr, j'ai vu par exemple:
"Apprendre à programmer avec Python 3" de Gérard Swinnen et "Apprenez à programmer en Python" de Vincent Le Goff, ainsi que "Programmation Python" de Tarek Ziadé et Stefan Richter. Ils sont tous disponibles également en format Kindle.

Je doit dire que je n'en ai lu aucun des trois. J'ai lu "Think Python: How to think like a computer scientist" qui est la base du livre de Swinnen et il était bien. Aussi si quelqu'un veut recommander un autre livre sur Python en français, laissez le nous savoir en commentaire. Il y a une liste avec d'autres suggestions ici.

Livres gratuits


'Domptage de serpents pour les enfants', que j'ai deja mentionne sur mon blog. Apprendre à programmer avec Python (Python 2 ou 3) par Gérard Swinnen, oui, le même que le livre en papier chez Amazon. 
. Dive Into Python traduit en francais. Et il y a une traduction en ligne de A byte of python.

Python, le programme


Donc, Python est un langage de programmation, mais c'est aussi un programme exécutable. Il est inclus avec le Raspberry Pi et avec la majorité des systèmes de type Unix (Solaris, OpenIndiana, Mac OS/X et les varietes de Linux ). Il peut aussi être installé sous Windows, iPhone, iPad, Android etc. Pour cet article, je vais me référer au programme python en l’écrivant en caractères gras.

On peut utiliser python de plusieures manieres.

Le premier mode

Premièrement, de façon interactive sur la ligne de commande:


pi@raspberrypi ~ $ python
Python 2.7.3rc2 (default, May  6 2012, 20:02:25) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 


L’interprète de commande python est maintenant en attente d'une commande, d'avoir quelque chose a faire. On va donc lui demander d'imprimer (print) les mots "Bonjour, monde!". De la même façon que j'ai besoin de borner les mots avec des guillemets pour être clair sur ce qui va être imprimé, en Python on doit délimiter une chaine de caractères (une phrase) par des guillemets droits simple (') ou double (") de par et d'autre de cette chaine:

pi@raspberrypi ~ $ python
Python 2.7.3rc2 (default, May  6 2012, 20:02:25) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Bonjour, monde!"
Bonjour, monde!
>>>


python nous a répondu:
Bonjour, monde!

Vous pouvez l'essayer ici dans votre browser web: print "Bonjour,+monde!" (cliquer sur [ Forward >] pour faire executer le code)

Si notre chaine de caractères dépasse une ligne, alors il faudra utiliser ces guillemets droits simple ou double, trois fois de chaque cote ("""beaucoup de mots, donc ca risque d'etre multiligne""")


pi@raspberrypi ~ $ python
Python 2.7.3rc2 (default, May  6 2012, 20:02:25) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print """
... Bonjour, monde!
... Je continue.
... J'ai fini!
... """

Bonjour, monde!
Je continue.
J'ai fini!



python nous a répondu:
Bonjour, monde!
Je continue.
J'ai fini!

Par contre, nous, on commence a peine! Il est aussi bon de mentionner qu'une chaine de caractères entre triple guillemets ("""chaine de caractères""") d'elle même, sans instruction, est ce que l'on appelle une docstring, une chaine de caractères (ou phrase) de documentation. Un commentaire, en d'autres termes.

On peut aussi utiliser python comme une calculatrice:


pi@raspberrypi ~ $ python
Python 2.7.3rc2 (default, May  6 2012, 20:02:25) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 2 * 32
64


Pour quitter le programme python, on doit taper la commande: exit()

Le deuxième mode


Si notre code est bien court, il n'y a pas de problème a utiliser ce mode interactif. Mais, ça devient un peu lassant de réécrire le même code a chaque fois. On peut donc sauver notre code dans un fichier, auquel on donnera une extension .py et que l'on peut lancer encore et encore.

On va donc sauver notre programme qui imprime "bonjour, monde!" dans un fichier. Pour cela toutefois, il faut un éditeur de fichier. Pour les experts, je recommande scribes en mode graphique et vim en mode console (texte).

Comme on débute, je recommande plutôt d'installer geany:

 pi@raspberrypi ~ $ sudo apt-get install geany
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  geany-common
Suggested packages:
  doc-base
The following NEW packages will be installed:
  geany geany-common
0 upgraded, 2 newly installed, 0 to remove and 134 not upgraded.
Need to get 3,401 kB of archives.
After this operation, 8,682 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main
 geany-common all 1.22+dfsg-2 [2,336 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main
 geany armhf 1.22+dfsg-2 [1,065 kB]
Fetched 3,401 kB in 6s (518 kB/s)                                              
Selecting previously unselected package geany-common.
(Reading database ... 91199 files and directories currently installed.)
Unpacking geany-common (from .../geany-common_1.22+dfsg-2_all.deb) ...
Selecting previously unselected package geany.
Unpacking geany (from .../geany_1.22+dfsg-2_armhf.deb) ...
Processing triggers for hicolor-icon-theme ...
Processing triggers for man-db ...
Processing triggers for menu ...
Processing triggers for desktop-file-utils ...
Setting up geany-common (1.22+dfsg-2) ...
Setting up geany (1.22+dfsg-2) ...
Processing triggers for menu ...
pi@raspberrypi ~ $ geany bonjour.py


On vient donc de lancer notre editeur. On tape notre code dans la fenetre bonjour.py:


Editeur de code Geany
On sauve, et on quitte (pour le moment, question de rester le plus simple possible).

Comment exécuter notre programme bonjour.py? Tres simplement:


pi@raspberrypi ~ $ python bonjour.py
Bonjour, monde!
pi@raspberrypi ~ $ 

C'est le deuxième mode d’opération, python exécutant un script.

Le troisième mode


Le troisième mode est disponible sur les ordinateurs de type Unix, et donc le Raspberry Pi. On relance notre éditeur geany:

pi@raspberrypi ~ $ geany bonjour.py 

On insere une nouvelle ligne 1
On sauve, et on quitte. La ligne que l'on vient d'ajouter indique quel programme va exécuter notre code. Ici, on indique python.

Mais, il faut aussi changer notre fichier du mode document, au mode executable, par l'entremise de la commande chmod:

pi@raspberrypi ~ $ chmod +x bonjour.py

On est maintenant prêt a lancer notre script:

pi@raspberrypi ~ $ ./bonjour.py
Bonjour, monde!
pi@raspberrypi ~ $

Par l'entremise de geany


Cela serait bien mieux si on pouvait rester dans notre éditeur, changer le code, l’exécuter, voir le résultat, continuer l’édition, l’exécuter, voir le résultat etc, sans avoir a quitter geany a chaque fois. On peut faire cela grace a la touche F5, ou du menu Build->Execute, ou encore le bouton avec les engrenages (View or Execute):

Bonjour, monde!
Ceci conclut notre premier tutoriel sur le langage Python. J’espère que cela vous aide.

No comments: