“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.
Oh, et voici une liste des libs Python les plus sympas. Ca vous donnera une bonne idée de tout le potentiel du langage.
Pour les applis desktop, jython + swing ça marche bien aussi :)
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
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.
Je me demandes si il est possible de se faire servir une bière par python?
@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
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)