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


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

Oh, et voici une liste des libs Python les plus sympas. Ca vous donnera une bonne idée de tout le potentiel du langage.

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

  • VonTenia

    Python se prête très bien à l’analyse du langage naturel (NLP), c’est même avec ça que j’ai commencé. NLTK est un outil de choix quand on veux faire des choses compliqués avec du texte (qu’on ne peux pas faire avec une regex : word stats, classification, tagging…), pour ceux que ça intéresse : https://sites.google.com/site/naturallanguagetoolkit/book

  • roro

    Salut; je ne voudrais pas jouer les rabat-joie, mais aprés avoir bien écumé le web, voici quelques chiffres:
    Sur trois sites “Basic”,(un anglais deux français) un total de 483 programmes, allant de la compression expérimentale, à la synthèse de parole, en passant par une myriade de jeux, dont certains d’une complexité avancée.
    Tous open source.
    Quelqu’un connaitrait-il un seul site Python contenant de l’open source fonctionnel ?…je suis preneur.

  • Th_K

    Je me demandes si il est possible de se faire servir une bière par python?

  • Sam Post author

    @roro

    T’es encore bourré Roro !

    T’as commencé ta phrase avec “sur 3 sites basiques”, mais t’as pas finis, donc je sais pas trop ce que tu cherches. Mais je vais supposer que tu veux trouver des sites donnant des sources de code Python.

    Et là c’est assez facile:

    http://pypi.python.org/pypi?%3Aaction=browse
    https://github.com/languages/Python
    http://www.djangopackages.com/
    http://sourceforge.net/directory/language:python/freshness:recently-updated/

    @Th_K

    Bien entendu:

    http://www.99-bottles-of-beer.net/language-python-808.html

  • roro

    Merci pour les liens…Je ne bois pas..MAYRDE !
    Je sais bien que hors de Python, point de salut, mais “BASIC”, c’est pas basiques.
    Ne jetez pas l’anathème sur les polyglottes.
    Et pour Sam: Si tout le monde ne faisait que du web, il n’y aurait de contenu que la pub,le porno,et les chats.
    …et bien sur “facederat” et cuicui (fenetres ouvertes sur la connerie humaine)

  • Arnaud, a la recheche d'un serpent

    Merci pour ces informations.

    Pour moi le python était plutôt utilisé pour faire du scripting.

    Alors je sais bien que l’on peut tout faire avec ce langage, mais dans quel domaine est il le plus utilisé?

    Merci,

  • Sam Post author

    Web, sysadmin, analyse de données (finance, maths, physique, géographie) et scripting (os, ou logiciel) sont les utilisations principales.

  • CHERIF Aidara Madhy

    Merci pour ses informations utiles . Svp j’aimerais avoir des cas et exemple pratiques d’analyse de données géographiques avec Python… Merci car python est beaucoup utilisé dans les SIG ( système d’information géographique) et dans les logiciels de traitements d’images pour la télédétection

  • Sam Post author

    Je ne suis pas géographe, donc je t’invite plutôt à te rapprocher d’une communauté de spécialistes comme par exemple http://www.forumsig.org/forum.php. Si un jour je me met à ARCGis, je ferai surement des tutos mais pour le moment, ce n’est pas du tout l’orientation de mes missions.

  • Yoann

    Bonjour !

    Peut-on développer des extensions de navigateur avec Python ?

    Merci pour votre article

    • Sam Post author

      A moins de compiler tout libpython et de l’embarquer avec de l’api native, non.

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.