127 lines
3.5 KiB
Plaintext
127 lines
3.5 KiB
Plaintext
|
.. default-role :: literal
|
||
|
|
||
|
Prise en main
|
||
|
==============
|
||
|
|
||
|
L'objectif de ce cours est de vous apprendre à programmer en
|
||
|
:term:`python`. Ce cours a été fait avec :term:`sphinx`, l'outil de
|
||
|
gestion de documentation en python utilisé pour documenter python lui-même.
|
||
|
|
||
|
Pour plus d'information : :doc:`docutils`
|
||
|
|
||
|
Avec python :
|
||
|
|
||
|
- vous n'avez pas grand chose à savoir pour arriver à faire beaucoup de choses,
|
||
|
|
||
|
- vous allez pouvoir travailler de manière
|
||
|
|
||
|
- entièrement autonome
|
||
|
- rapide
|
||
|
- agile (au sens des méthodes agiles)
|
||
|
|
||
|
- vous allez progresser rapidement
|
||
|
|
||
|
- aucune connaissance préalable en programmation n'est requise
|
||
|
|
||
|
- le hello world en une ligne::
|
||
|
|
||
|
python -c "print 'hello'"
|
||
|
|
||
|
- rendre un fichier exécutable et ajouter le she bang::
|
||
|
|
||
|
#!/usr/bin/env python
|
||
|
print "hello"
|
||
|
|
||
|
.. note:: lorsqu'on lance python sur un programme, des fichiers
|
||
|
avec une extension `.pyc` apparaissent.
|
||
|
|
||
|
.. glossary::
|
||
|
|
||
|
python
|
||
|
|
||
|
python_ est un langage de programmation généraliste, libre, totalement
|
||
|
orienté objet, dynamiquement typé, semi-interprété ou, pour certaines
|
||
|
utilisations optimisées, compilé ou compilé à la volée (JIT).
|
||
|
|
||
|
sphinx
|
||
|
|
||
|
sphinx_ est un outil de documentation utilisant la syntaxe wiki
|
||
|
docutils_
|
||
|
|
||
|
- lorsqu'on lance python sans spécifier de nom de fichier, c'est l'interpréteur
|
||
|
python qui est lancé (le "prompt")
|
||
|
|
||
|
|
||
|
En python, le dicton le plus répandu est "there must be an obvious way
|
||
|
to do it", (il y a certainement une manière évidente de le faire en
|
||
|
python), ``import this`` permet de se remémorer les
|
||
|
dictons de python. Ce dicton est très différent de l'approche du perl
|
||
|
par exemple, qui présuppose : "there is more than one way to do it",
|
||
|
c'est-à-dire que en gros en perl, on peut le faire n'importe comment,
|
||
|
mais pas en python, enfin en python c'est pas conseillé de le faire à sa
|
||
|
sauce, il y a en général une bonne pratique à découvrir et à mettre en place.
|
||
|
|
||
|
Taper "python" dans votre console
|
||
|
|
||
|
::
|
||
|
|
||
|
>>> print "hello world"
|
||
|
hello world
|
||
|
|
||
|
::
|
||
|
|
||
|
>>> import this
|
||
|
|
||
|
Beautiful is better than ugly.
|
||
|
Explicit is better than implicit.
|
||
|
Simple is better than complex.
|
||
|
Complex is better than complicated.
|
||
|
|
||
|
...
|
||
|
|
||
|
.. seealso::
|
||
|
|
||
|
les modules, :ref:`namespaces` et la librairie standard
|
||
|
:doc:`stdlib`
|
||
|
|
||
|
pour avoir de l'aide, taper dans le prompt :
|
||
|
|
||
|
>>> help(function)
|
||
|
|
||
|
Le bon réflexe de chercher ce qui est le plus répandu et le plus utilisé est le
|
||
|
bon en python : on dit que python est livré "batteries included", ce qui
|
||
|
signifie que lorsqu'on a un besoin précis il faut chercher dans la librairie
|
||
|
standard python, puis dans les librairies les plus utilisées en python, puis en
|
||
|
dernier... le reste, ce qui est disponible. Mais si une librairie connue ne
|
||
|
fait pas exactement ce qui est attendu et qu'une libraire inconnue du bataillon
|
||
|
fait exactement ce qui est attendu, (et a l'air de fonctionner
|
||
|
correctement...), alors il faut choisir la libraire inconnue au bataillon.
|
||
|
|
||
|
|
||
|
usage de python
|
||
|
------------------
|
||
|
|
||
|
à peu près tous les domaines de l'informatique, du scripting système à la génération
|
||
|
de pdf en passant par le développement web et le développement rapide d'applications.
|
||
|
|
||
|
|
||
|
exemple : web server
|
||
|
|
||
|
pour créer un serveur web simplement::
|
||
|
|
||
|
python -m server.http 8000 localhost
|
||
|
|
||
|
exemple : utiliser python pour faire un fichier de conf
|
||
|
|
||
|
::
|
||
|
|
||
|
spam = "eggs"
|
||
|
actions = [
|
||
|
('call_view', 'com.next')
|
||
|
]
|
||
|
|
||
|
|
||
|
.. _python: http://www.python.org
|
||
|
.. _sphinx: http://sphinx.pocoo.org
|
||
|
.. _docutils: http://docutils.sf.net
|