corrections du cours après la présentation

This commit is contained in:
gwen 2017-06-21 10:52:29 +02:00 committed by Benjamin Bohard
parent 08495c6a07
commit b98c46b4ae
3 changed files with 35 additions and 10 deletions

View File

@ -428,7 +428,7 @@ Traduction d'une structure de données dans une autre
'low': '192.168.0.8', 'low': '192.168.0.8',
'only_unknown': False}], 'only_unknown': False}],
'mask': '255.255.255.0'}, 'mask': '255.255.255.0'},
{'address': '192.168.0.1', {'address': '192.168.10.0',
'dynamicRanges': [{'high': '192.168.0.12', 'dynamicRanges': [{'high': '192.168.0.12',
'low': '192.168.0.5', 'low': '192.168.0.5',
'only_unknown': True}, 'only_unknown': True},

View File

@ -433,6 +433,17 @@ Le prompt OCaml (utop)::
val y : int = 3 val y : int = 3
# y * y;; # y * y;;
- : int = 9 - : int = 9
Construire une boucle d'interaction avec l'utilisateur en python::
#!/usr/bin/env python3
error = True
while error:
try:
entier = int(input('donnez un entier : '))
error = False
except:
print('une valeur entiere est attendue')
print(entier)
Lire et écrire dans un fichier Lire et écrire dans un fichier
------------------------------ ------------------------------

View File

@ -58,11 +58,11 @@ Organisation modulaire
- identifier les sous-composants indépendants (rendre les programmes réutilisables) - identifier les sous-composants indépendants (rendre les programmes réutilisables)
- forcer l'abstraction (augmenter la sureté du programme) - forcer l'abstraction (augmenter la sureté du programme)
modules chargés et modules importés modules chargés et modules importés
-------------------------------------- --------------------------------------
Les modules susceptibles d'être chargés sont dans le :envvar:`PYTHONPATH`. Les modules susceptibles d'être chargés sont dans le :envvar:`PYTHONPATH`.
Mais comment peut-on savoir ou ils sont physiquement (sur le disque dur) ? Mais comment peut-on savoir ou ils sont physiquement (sur le disque dur) ?
.. envvar:: `sys.modules` .. envvar:: `sys.modules`
@ -73,10 +73,10 @@ False
True True
>>> sys.modules['twisted'] >>> sys.modules['twisted']
<module 'twisted' from '/usr/lib/python2.7/dist-packages/twisted/__init__.pyc'> <module 'twisted' from '/usr/lib/python2.7/dist-packages/twisted/__init__.pyc'>
>>> >>>
.. attention:: un module présent dans `sys.modules` n'est pas forcément importé .. attention:: un module présent dans `sys.modules` n'est pas forcément importé
dans l'espace de nommage usuel. Il faut importer le module pour dans l'espace de nommage usuel. Il faut importer le module pour
pouvoir l'utiliser. pouvoir l'utiliser.
>>> sys.modules['email'] >>> sys.modules['email']
@ -85,21 +85,35 @@ True
Traceback (most recent call last): Traceback (most recent call last):
File "<stdin>", line 1, in <module> File "<stdin>", line 1, in <module>
NameError: name 'email' is not defined NameError: name 'email' is not defined
>>> >>>
Pour récupérer le chemin du module
.. code-block:: python
print(os.path.abspath(<module>.__file__))
Pour importer un module qui n'est pas dans le `sys.path`
.. code-block:: python
fch = open('/path/to/mymodule/custom.py', 'r')
my_module = imp.load_module('dhcp_custom', fch, '/path/to/mymodule.py', ('.py', 'U', 1))
Connaître la version d'un module Connaître la version d'un module
------------------------------------- -------------------------------------
Exemple : le module ``datetime`` Exemple : le module ``datetime``
C'est suivant la version de python car c'est la librairie standard. C'est suivant la version de python car c'est la librairie standard.
Sinon, en général il y a un attribut __version__ Sinon, en général il y a un attribut __version__
>>> import sqlalchemy >>> import sqlalchemy
>>> sqlalchemy.__version__ >>> sqlalchemy.__version__
'0.9.8' '0.9.8'
>>> >>>
Les méthodes spéciales Les méthodes spéciales