Programmer en Python
Historique de Python
Développé en une semaine par Guido van Rossum (selon la légende), le langage Python tire son nom des Monty Python dont Guido est un admirateur. Guido explique sur son blog (http://python-history.blogspot.fr/2009/01/personal-history-part-1-cwi.html) que, fraîchement sorti de l’université, il entre en 1982 chez CWI comme programmeur. CWI (Centrum Wiskunde & Informatica = centre des mathématiques et de l’informatique) est le centre de recherche néerlandais sur les mathématiques et l’informatique, situé à Amsterdam (Pays-Bas). Il travaille sur un projet nommé ABC qui est abandonné faute de succès. Il rejoint alors le groupe qui développe Amoeba, un système distribué basé sur un micro noyau développé par CWI et l’université d’Amsterdam. Finalement il travaille dans le groupe multimédia. Le langage Python est le produit de cette expérience chez CWI. Le langage ABC a été la source d’inspiration de Python, Amoeba la motivation et le groupe multimédia a favorisé son développement. Bien que CWI n’ait jamais investi sur Python, il est devenu un outil important utilisé aussi bien par le groupe Amoeba que par l’équipe multimédia.
Démarré fin 1989, le développement de Python produit...
Particularités de Python
Python est dès l’origine conçu pour être très lisible. Il permet à un débutant de pouvoir rapidement écrire un programme qui fonctionne. C’est ainsi que des étudiants ou des chercheurs s’approprient facilement le langage et l’utilisent pour leurs travaux. On retrouve Python aussi bien dans le milieu universitaire que dans le monde industriel.
Les développeurs Python ont à leur disposition une bibliothèque très étendue. On retrouve Python dans de nombreux domaines, de la programmation système au développement web, des applications graphiques aux systèmes embarqués, ou encore dans le domaine du calcul scientifique. Il peut communiquer avec les bases de données classiques, avec les annuaires (LDAP).
Python est un langage interprété. Il est exécuté dans une machine virtuelle qui démarre au lancement de Python.
Python en mode console
Python peut être utilisé de plusieurs façons. La plus directe est le mode console qui ne nécessite qu’une console en mode texte et la saisie de commandes directement sous le prompt Python. La seconde possibilité est l’utilisation d’un environnement de développement appelé IDLE. Il est enfin possible d’écrire des programmes en Python qui seront exécutés par l’un ou l’autre des environnements.
Les deux branches de Python sont disponibles sur le Raspberry Pi. Dans la suite de ce chapitre, c’est Python 3 qui sera utilisé.
L’objectif de ce chapitre est de vous permettre de lire et de modifier un programme en Python. L’utilisation de programmes démontrant les possibilités du langage sera un premier pas dans la découverte du langage.
1. Lancement de Python
Le lancement de Python dans une console en mode texte se fait par la commande python pour lancer Python 2.7 et par la commande python3 pour lancer Python 3.4.
pi@raspberrypi ~ $ python3
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Le prompt avec lequel Python vous indique qu’il attend une commande est >>>. Pour sortir de Python et revenir à Linux tapez exit() suivi de [Entrée].
Sans entrer dans les techniques de programmation, il est déjà possible d’utiliser Python comme une calculatrice (évoluée).
2. Utiliser Python comme une calculatrice
a. Opérations de base
Ces opérateurs effectuent le calcul de l’expression et affichent le résultat. Les # présents sur les lignes indiquent un commentaire. Tout ce qui suit le # sur la ligne est ignoré par Python.
>>> 2 + 3 # Somme
5
>>> 12 - 7 # Soustraction
5
>>> 6 * 4 # Multiplication
24
>>> 24 / 6 # Division
4.0
>>> 137 % 9 # Modulo : 137/9=15 et il reste 2
2
>>> 7 ** 2 ...
Python en environnement graphique
L’utilisation d’un environnement de développement intégré facilite l’écriture et la mise au point des programmes en Python. Le Raspberry Pi propose un environnement pour chaque version de Python. Pour la suite de ce chapitre, c’est l’IDLE de Python 3 qui sera utilisé.
1. L’environnement de développement IDLE
Pour ouvrir la fenêtre de l’environnement de développement Python, cliquez sur Menu puis Programmation et enfin Python 3 (IDLE).
La version de Python utilisée par l’environnement IDLE est indiquée sur la première ligne. Ici, c’est la version 3.4.2. Il est possible que la version disponible lorsque vous utiliserez Python soit différente.
L’environnement IDLE assiste la rédaction de programmes en Python par la coloration syntaxique, l’indentation automatique et l’affichage de bulles d’aide (CallTips).
Régler la taille des caractères
Si les caractères affichés dans la fenêtre IDLE vous paraissent trop petits, vous pouvez ajuster leur taille à votre convenance.
Dans le menu Options, cliquez sur Configure IDLE… La fenêtre ci-dessous s’ouvre.
La partie gauche vous permet de choisir la police utilisée pour l’affichage ainsi que sa taille. Vous pouvez également cocher la case Bold si vous souhaitez...
Définir une fonction
Les exemples de scripts précédents sont courts, adaptés à une tâche unique et bien définie. Le développement de programmes plus longs va nécessiter l’écriture de nombreuses lignes de code. L’écriture et la maintenance du programme deviennent de plus en plus compliquées.
Une bonne méthode pour aborder un programme complexe consiste à le décomposer en de multiples tâches simples qui pourront chacune être traitées séparément. D’autre part on constate souvent qu’une même tâche revient plusieurs fois dans un script, et il est intéressant de ne pas réécrire un morceau de script identique à chaque fois.
Dans les exemples de scripts, les fonctions print() et input() utilisées sont des fonctions prédéfinies dans le langage Python. Il est possible d’enrichir le langage en définissant ses propres fonctions.
Une fonction est définie par :
-
Son nom qui doit être unique pour que l’interpréteur de Python puisse l’identifier de façon certaine.
-
Ses arguments qui sont les données transmises à la fonction pour qu’elle les traite.
-
Sa sortie qui est le résultat qu’elle renvoie après le traitement des données.
Il est possible qu’une fonction ne renvoie...
Utiliser les modules
Le développement d’un script peut entraîner la création de nombreuses fonctions. Le regroupement de fonctions dans un module permet de stocker ensemble des fonctions spécialisées dans des modules séparés et de les appeler à la demande (calculs, traitement d’images, accès à des fichiers...). L’utilisation de ces fonctions se fait en intégrant le module qui les contient au script.
1. Les modules internes
Lors de l’installation de Python, un certain nombre de modules sont installés en même temps que Python. Ils donnent accès :
-
au traitement des chaînes de caractères (string, curses),
-
au système (sys, time, os),
-
aux bases de données (anydbm, shelve),
-
aux calculs (maths, random).
2. Créer un module
Un module est simplement un fichier qui contient des fonctions que le programmeur souhaite regrouper. Il intègre généralement un programme de test permettant de vérifier que les fonctions incluses dans le module fonctionnent. Si une modification d’une ou de plusieurs fonctions est nécessaire, le script de test validera le fait que les fonctions contenues dans le module continuent de fonctionner normalement.
L’exemple suivant montre comment créer un module nommé calcul. Ce module contient la fonction multipli() ainsi qu’un programme de test destiné à vérifier le bon fonctionnement de la fonction.
Cet exemple utilise les docstrings...
Lire et écrire dans un fichier
Le fichier est un moyen pratique pour stocker des données lorsque :
-
La quantité d’informations à conserver est très importante et peut encombrer la mémoire du Raspberry Pi.
-
Les données doivent être conservées après extinction du Raspberry Pi.
-
Le fichier contient des données récupérées par téléchargement (compte bancaire, données météo...).
Python offre bien entendu les mécanismes pour accéder aux fichiers, en lecture et en écriture.
Comme pour consulter un ouvrage imprimé dans une bibliothèque, l’utilisation d’un fichier nécessite de connaître son nom pour le localiser. Il faut ensuite ouvrir le fichier qui peut être lu séquentiellement (comme un roman) ou en accédant à n’importe quel endroit du fichier (comme un livre de recettes). Une fois le travail terminé, le fichier, comme le livre est refermé.
1. Création d’un fichier
La création d’un fichier en Python se fait en ouvrant tout d’abord le fichier avec la fonction open() puis en écrivant des données dans ce fichier avec la fonction write(). La fonction open() retourne un descripteur qui permet l’accès au fichier.
-
En écriture : si le fichier existe déjà, il est écrasé et remplacé par le nouveau fichier. La syntaxe est : open("nom_fichier","w")
-
En ajout : les données sont écrites à la fin du fichier, sans modifier les données présentes dans le fichier. La syntaxe est : open("nom_fichier","a")
Le fichier...
Aller plus loin avec Python
Les quelques pages de ce chapitre sur Python ont pour but de présenter le langage et de permettre à un utilisateur du Raspberry Pi de comprendre un programme écrit en Python, afin de lui apporter des modifications.
Pour approfondir vos connaissances en Python sur le Raspberry Pi, les Éditions ENI ont publié un livre de Patrice CLEMENT : Python et Raspberry Pi, Apprenez à développer sur votre nano-ordinateur.
Si vous devez créer des programmes à usage professionnel en Python, vous pouvez vous référer au livre Python 3, les fondamentaux du langage. Cet ouvrage de Sébastien Chazallet paru aux Éditions ENI dans la collection Ressources Informatiques permet de voir comment utiliser Python en partant des problématiques (protocoles, serveurs, images...). Il comporte de nombreux exemples, sous forme de tutoriels, couvrant les domaines courants : gestion de données, interfaces web, graphiques…
Comme tout langage de programmation, Python nécessite un investissement qui sera largement récompensé par la satisfaction de pouvoir écrire ses propres programmes en fonction de ses besoins.