PROJET AUTOBLOG


Sam et Max

source: Sam et Max

⇐ retour index

Qu’est-ce qu’on peut faire avec Python ?

mercredi 12 septembre 2012 à 22:10

“Ouai, j’ai entendu parlé de Python, mais je sais pas… On peut faire quoi avec ?”

Des jeux vidéos et des films

Python étant très ami avec le langage C (l’implémentation de base étant CPython, et les bindings C étant faciles et courant), on peut faire des choses demandant pas mal de patate.

PyGame, une lib pour créer des jeux en 2D:

Et Blender, un modélisateur 3D dont le moteur de scripting est Pythonphone:



Civilization IV utilise également Python pour la plupart de ses tâches, Battlefield 2 pour ses addons, et Eve Online, pour la partie serveur.

Du web

Ma devise: si Youtube est écrit en Python, ça doit suffire pour mon usage.

Python ne vient pas avec des tas de raccourcis pour créer un site Web par défaut comme PHP, mais il existe de nombreux excellents outils pour ça. Nous on a une préférence pour Django pour les gros projets, et Bottle pour les petits.


Capture d'écran du logiciel 0bin

0bin

a été écrit avec Bottle

Du scripting

Ben oui quand même, à la base Python c’est un langage de scripting. Certes, qui peut faire de la POO, de l’introspection, et tout un tas de trucs puissants, mais par nature, Python excelle dans la récupération de paramètres, le parsing d’un fichier, les petits scripts rapides, etc.
Exemple de récupération de paramètre super propres en quelques lignes:

import argparse
 
parser = argparse.ArgumentParser(description="Description du programme")
 
parser.add_argument('-o', '--option', default='valeur par defaut', type=str,
                             help="Voila a quoi sert cette option",
                             )
 
parser.add_argument('text', type=str, nargs='+',
                     help="Un argument positionel obligatoire")
 
args = parser.parse_args()
 
print args.text
print args.option

Et le programme génère automatiquement le check des arguments, et un “usage”:

$ python test.py
usage: test.py [-h] [-o OPTION] text [text ...]
test.py: error: too few arguments

Mais également aussi le --help:

$ python test.py -h
usage: test.py [-h] [-o OPTION] text [text ...]
 
Description du programme
 
positional arguments:
  text                  Un argument positionel obligatoire
 
optional arguments:
  -h, --help            show this help message and exit
  -o OPTION, --option OPTION
                        Voila a quoi sert cette option

Et la récupération des arguments est simplissime:

$ python test.py Mon option
['Mon', 'option']
valeur par defaut

Bonne nouvelle, Linux et Mac viennent avec Python installé par défaut.

Des pilotes

Python est un langage de haut niveau, donc on ne l’attend pas du coté des drivers. Mais depuis Windows XP, on peut utiliser le User-Mode Driver Framework, et ainsi écrire pas mal de pilotes en appelant utilisant l’API COM.

En plus de cela, on peut taper dans le serial et l’USB, et même utiliser son téléphone comme modem ou simplement envoyer des SMS.

Il y a même des petits malins qui l’utilisent pour s’amuser avec la wiimote, ou le Kinect:

Des applications de tablettes

De plus en plus d’initiatives existent pour développer sur Android avec Python. La plus intéressante étant Kivy, qui a la bonne idée de fonctionner en plus sous Linux, Mac et Windows:

Du Desktop

Python brille dans le domaine du développement rapide et du prototypage. Pour cette raison Ubuntu l’a choisi comme langage de développement par défaut, et propose même un outil, nommé quickly, pour rapidement créer une app:

Mais Python fonctionne pour les logiciels plus costauds aussi, puisque BitTorrent est écrit en Python, comme le client DropBox, Gajim ou encore PiTiVi.

D’une manière générale, Python permet d’écrire des applications avec WX, GTK et QT (ou directement avec l’API Win32), donc les développeurs d’autres langages sont rarement perdus.

De l’analyse de données

Python vient du monde scientifique, il est donc tout à fait naturel de le retrouver dans ce domaine. La Nasa l’utilise, il y a des environnements de type Matlab, des libs pour bouffer du nombre en tas, pour s’amuser avec les matrices ou les probas, pour la bio informatique, etc.

D’une manière générale, Python remplace R, AWK, Perl, PHP, et parfois même le C.

Comme langage de plugin

Puisque Python aime bien le C, il est un excellent langage d’extensions: The Gimp, Inkscape, Nautilus, Gedit, Rhythmbox, Sublime Text… Tous utilisent Python pour permettre à d’autre de facilement étendre les fonctionalités de base.

Si vous vous demandez si vous pouvez faire ‘x’ en Python, postez un com, on vous répondra. Et si le code commence à vous démanger, on a un tas d’articles sur Python pour petits et grands.