relecture de la formation python
This commit is contained in:
parent
76c321feb6
commit
dfa5883b0f
|
@ -32,10 +32,10 @@ Une interface décrit un ensemble de comportements.
|
||||||
on peut considérer une interface comme un protocole d'utilisation d'un objet
|
on peut considérer une interface comme un protocole d'utilisation d'un objet
|
||||||
dans un contexte donné.
|
dans un contexte donné.
|
||||||
|
|
||||||
on peut alors créer des outils qui sauront traiter n'importe quel objet
|
On peut alors créer des outils qui sauront traiter n'importe quel objet
|
||||||
pourvu qu'il respecte une ensemble d'interfaces.
|
pourvu qu'il respecte un ensemble d'interfaces.
|
||||||
|
|
||||||
.. todo:: travailler l'héritage, l'aggrégation, la délégation
|
.. todo:: travailler l'héritage, l'agrégation, la délégation
|
||||||
|
|
||||||
Voici un exemple de classe `Voiture` :
|
Voici un exemple de classe `Voiture` :
|
||||||
|
|
||||||
|
|
|
@ -7,19 +7,19 @@ L'objectif de ce cours est de vous apprendre à programmer en
|
||||||
:term:`python`. Ce cours a été fait avec :term:`sphinx`, l'outil de
|
: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.
|
gestion de documentation en python utilisé pour documenter python lui-même.
|
||||||
|
|
||||||
avec python :
|
Avec python :
|
||||||
|
|
||||||
- vous n'avez pas grand chose à savoir pour arriver à faire beaucoup de choses,
|
- vous n'avez pas grand chose à savoir pour arriver à faire beaucoup de choses ;
|
||||||
|
|
||||||
- vous allez pouvoir travailler de manière
|
- vous allez pouvoir travailler de manière :
|
||||||
|
|
||||||
- entièrement autonome
|
- entièrement autonome ;
|
||||||
- rapide
|
- rapide ;
|
||||||
- agile (au sens des méthodes agiles)
|
- agile (au sens des méthodes agiles) ;
|
||||||
|
|
||||||
- vous allez progresser rapidement
|
- vous allez progresser rapidement ;
|
||||||
|
|
||||||
- aucune connaissance préalable en programmation n'est requise
|
- aucune connaissance préalable en programmation n'est requise ;
|
||||||
|
|
||||||
- le hello world en une ligne::
|
- le hello world en une ligne::
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ avec python :
|
||||||
- lorsqu'on lance python sans spécifier de nom de fichier, c'est l'interpréteur
|
- lorsqu'on lance python sans spécifier de nom de fichier, c'est l'interpréteur
|
||||||
python qui est lancé (le "prompt")
|
python qui est lancé (le "prompt")
|
||||||
|
|
||||||
Taper "python" dans votre console
|
Taper "python" dans votre console.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
@ -72,20 +72,20 @@ Taper "python" dans votre console
|
||||||
les modules, :ref:`namespaces` et la librairie standard
|
les modules, :ref:`namespaces` et la librairie standard
|
||||||
:doc:`stdlib`
|
:doc:`stdlib`
|
||||||
|
|
||||||
pour avoir de l'aide, taper dans le prompt :
|
Pour avoir de l'aide, taper dans le prompt :
|
||||||
|
|
||||||
>>> help(function)
|
>>> help(function)
|
||||||
|
|
||||||
usage de python
|
Usage de python
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
à peu près tous les domaines de l'informatique, du scripting système à la génération
|
À 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.
|
de pdf en passant par le développement web et le développement rapide d'applications.
|
||||||
|
|
||||||
|
|
||||||
exemple : web server
|
exemple : web server
|
||||||
|
|
||||||
pour créer un serveur web simplement::
|
Pour créer un serveur web simplement::
|
||||||
|
|
||||||
python -m SimpleHTTPServer 8000 localhost
|
python -m SimpleHTTPServer 8000 localhost
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Interactions avec l'utilisateur
|
Interactions avec l'utilisateur
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
les prompts
|
Les prompts
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
`raw_input` ou `input`
|
`raw_input` ou `input`
|
||||||
|
@ -14,10 +14,10 @@ les prompts
|
||||||
|
|
||||||
.. _cmdlabel:
|
.. _cmdlabel:
|
||||||
|
|
||||||
le module :mod:`cmd` et les interpréteurs
|
Le module :mod:`cmd` et les interpréteurs
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
|
|
||||||
le monde des interpréteur ligne de commande...
|
Le monde des interpréteur ligne de commande...
|
||||||
|
|
||||||
Peu après l'âge de bronze vint le temps de l'interpréteur ligne de commande,
|
Peu après l'âge de bronze vint le temps de l'interpréteur ligne de commande,
|
||||||
c'est-à-dire quelque chose de plus spécifique que **l'application ligne de commande**,
|
c'est-à-dire quelque chose de plus spécifique que **l'application ligne de commande**,
|
||||||
|
@ -26,18 +26,18 @@ ou que l'utilitaire ligne de commande.
|
||||||
|
|
||||||
Un interpréteur ligne de commande est un programme qui :
|
Un interpréteur ligne de commande est un programme qui :
|
||||||
|
|
||||||
- est forcément plein texte
|
- est forcément plein texte ;
|
||||||
- vous donne un prompt
|
- vous donne un prompt ;
|
||||||
- prends toutes ses entrées d'un coup
|
- prend toutes ses entrées d'un coup ;
|
||||||
- produit une sortie (typiquement des lignes de texte)
|
- produit une sortie (typiquement des lignes de texte) ;
|
||||||
- vous redonne un prompt
|
- vous redonne un prompt.
|
||||||
|
|
||||||
Le shell unix est un bon exemple d'interpréteur ligne de commande.
|
Le shell unix est un bon exemple d'interpréteur ligne de commande.
|
||||||
|
|
||||||
Un utilitaire ligne de commande est un programme unix-like qui prend toutes
|
Un utilitaire ligne de commande est un programme unix-like qui prend toutes
|
||||||
les entrées d'un coup, et qui vous renvoie une sortie d'un coup.
|
les entrées d'un coup, et qui vous renvoie une sortie d'un coup.
|
||||||
|
|
||||||
le module :mod:`cmd` : exemple d'utilisation
|
Le module :mod:`cmd` : exemple d'utilisation
|
||||||
|
|
||||||
.. module:: cmd
|
.. module:: cmd
|
||||||
:synopsis: interpréteur ligne de commande
|
:synopsis: interpréteur ligne de commande
|
||||||
|
@ -65,7 +65,7 @@ le module :mod:`cmd` : exemple d'utilisation
|
||||||
|
|
||||||
#Prompt>
|
#Prompt>
|
||||||
|
|
||||||
to add a command, just use inheritance::
|
Pour ajouter une commande, utilisez juste l'héritage::
|
||||||
|
|
||||||
|
|
||||||
>>> from cli import Cli
|
>>> from cli import Cli
|
||||||
|
@ -92,10 +92,10 @@ to add a command, just use inheritance::
|
||||||
|
|
||||||
.. todo:: faire un petit projet d'interpréteur ligne de commande du jeu C+/C-
|
.. todo:: faire un petit projet d'interpréteur ligne de commande du jeu C+/C-
|
||||||
|
|
||||||
lire et écrire dans un fichier
|
Lire et écrire dans un fichier
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
les **handle de fichier** (file handles)
|
Les **handle de fichier** (file handles)
|
||||||
|
|
||||||
|
|
||||||
>>>
|
>>>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Mettre en place son environnement de travail
|
Mettre en place son environnement de travail
|
||||||
=============================================
|
=============================================
|
||||||
|
|
||||||
un framework de développement intégré : :term:`IDLE`
|
Un framework de développement intégré : :term:`IDLE`
|
||||||
|
|
||||||
.. glossary::
|
.. glossary::
|
||||||
|
|
||||||
|
@ -21,9 +21,9 @@ un framework de développement intégré : :term:`IDLE`
|
||||||
|
|
||||||
.. _`librairie standard`: http://docs.python.org/2.7/library/index.html
|
.. _`librairie standard`: http://docs.python.org/2.7/library/index.html
|
||||||
|
|
||||||
Premier réflexe : la doc en ligne ou bien installée sur votre disque dur.
|
Premier réflexe : consulter la doc en ligne ou bien installée sur votre disque dur.
|
||||||
|
|
||||||
la page d'accueil de la doc officielle python :
|
La page d'accueil de la doc officielle python :
|
||||||
|
|
||||||
.. image:: images/DocPython.png
|
.. image:: images/DocPython.png
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ modules :
|
||||||
|
|
||||||
.. image:: images/ModuleIndex.png
|
.. image:: images/ModuleIndex.png
|
||||||
|
|
||||||
configurer son éditeur
|
Configurer son éditeur
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
- les fichiers sources ont l'extenstion `.py`
|
- les fichiers sources ont l'extenstion `.py`
|
||||||
|
@ -40,7 +40,7 @@ configurer son éditeur
|
||||||
- les blocs sont marqués par l'indentation (utilser 4 espaces), règler
|
- les blocs sont marqués par l'indentation (utilser 4 espaces), règler
|
||||||
l'éditeur pour transformer les tabulations en espaces
|
l'éditeur pour transformer les tabulations en espaces
|
||||||
|
|
||||||
configurer son prompt python
|
Configurer son prompt python
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
.. envvar:: PYTHONPATH
|
.. envvar:: PYTHONPATH
|
||||||
|
@ -48,7 +48,7 @@ configurer son prompt python
|
||||||
pointe par défaut sur le répertoire courant, il est possible d'ajouter
|
pointe par défaut sur le répertoire courant, il est possible d'ajouter
|
||||||
un path
|
un path
|
||||||
|
|
||||||
à mettre dans votre `.bashrc` :
|
À mettre dans votre `.bashrc` :
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ python est un langage dynamiquement typé. qu'est-ce que cela signifie ?
|
||||||
|
|
||||||
- ouvrir l'interpréteur python
|
- ouvrir l'interpréteur python
|
||||||
- dans la console créer un objet de type integer, float, string, liste, dictionnaire
|
- dans la console créer un objet de type integer, float, string, liste, dictionnaire
|
||||||
- vérifier les types à l'aide de la fonction
|
- vérifier les types à l'aide de la fonction `type()`
|
||||||
- vérifier que en python tout est objet
|
- vérifier que en python tout est objet
|
||||||
- type de base et types conteneurs
|
- type de base et types conteneurs
|
||||||
- types mutables et types immutables
|
- types mutables et types immutables
|
||||||
|
@ -118,13 +118,11 @@ index(), find(), replace()
|
||||||
|
|
||||||
- enlever les accents
|
- enlever les accents
|
||||||
|
|
||||||
>>> import unicodedata
|
|
||||||
>>> s = u"un été même pas chaud"
|
>>> s = u"un été même pas chaud"
|
||||||
>>> import unicodedata as U
|
>>> import unicodedata as U
|
||||||
>>> s2 = ''.join(U.normalize('NFD', x)[0] for x in s)
|
>>> s2 = ''.join(U.normalize('NFD', x)[0] for x in s)
|
||||||
>>> s2
|
>>> s2
|
||||||
u'un ete meme pas chaud'
|
u'un ete meme pas chaud'
|
||||||
>>>
|
|
||||||
|
|
||||||
- enlever la ponctuation
|
- enlever la ponctuation
|
||||||
|
|
||||||
|
@ -134,7 +132,7 @@ u'un ete meme pas chaud'
|
||||||
>>> string.punctuation
|
>>> string.punctuation
|
||||||
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
|
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
|
||||||
|
|
||||||
- l'encodage (unicode):
|
- l'encodage (unicode et la compression utf-8):
|
||||||
|
|
||||||
>>> u = u"éèà bla"
|
>>> u = u"éèà bla"
|
||||||
>>> u
|
>>> u
|
||||||
|
@ -143,7 +141,6 @@ u'\xe9\xe8\xe0 bla'
|
||||||
'\xc3\xa9\xc3\xa8\xc3\xa0 bla'
|
'\xc3\xa9\xc3\xa8\xc3\xa0 bla'
|
||||||
>>> print u.encode("utf-8")
|
>>> print u.encode("utf-8")
|
||||||
éèà bla
|
éèà bla
|
||||||
>>>
|
|
||||||
|
|
||||||
manips importantes de traitement unicode (si on n'est pas en python 3)
|
manips importantes de traitement unicode (si on n'est pas en python 3)
|
||||||
|
|
||||||
|
@ -169,7 +166,6 @@ ordinal not in range(128)
|
||||||
>>> s = u.encode("utf-8")
|
>>> s = u.encode("utf-8")
|
||||||
>>> type(s)
|
>>> type(s)
|
||||||
<type 'str'>
|
<type 'str'>
|
||||||
>>>
|
|
||||||
|
|
||||||
# il faut utiliser .encode(), et pas .decode()...
|
# il faut utiliser .encode(), et pas .decode()...
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue