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:
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.
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.