diff --git a/algorithmique/cours/donnees.txt b/algorithmique/cours/donnees.txt index 99b21ca..990629e 100644 --- a/algorithmique/cours/donnees.txt +++ b/algorithmique/cours/donnees.txt @@ -428,7 +428,7 @@ Traduction d'une structure de données dans une autre 'low': '192.168.0.8', 'only_unknown': False}], 'mask': '255.255.255.0'}, - {'address': '192.168.0.1', + {'address': '192.168.10.0', 'dynamicRanges': [{'high': '192.168.0.12', 'low': '192.168.0.5', 'only_unknown': True}, diff --git a/algorithmique/cours/programme.txt b/algorithmique/cours/programme.txt index f212fbb..6133cf1 100644 --- a/algorithmique/cours/programme.txt +++ b/algorithmique/cours/programme.txt @@ -433,6 +433,17 @@ Le prompt OCaml (utop):: val y : int = 3 # y * y;; - : 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 ------------------------------ diff --git a/python/formation/specialmethods.txt b/python/formation/specialmethods.txt index 2172ae9..0ac4dc6 100644 --- a/python/formation/specialmethods.txt +++ b/python/formation/specialmethods.txt @@ -58,11 +58,11 @@ Organisation modulaire - identifier les sous-composants indépendants (rendre les programmes réutilisables) - 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`. -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` @@ -73,10 +73,10 @@ False True >>> sys.modules['twisted'] ->>> +>>> -.. 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 +.. 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 pouvoir l'utiliser. >>> sys.modules['email'] @@ -85,21 +85,35 @@ True Traceback (most recent call last): File "", line 1, in NameError: name 'email' is not defined ->>> +>>> + +Pour récupérer le chemin du module + +.. code-block:: python + + print(os.path.abspath(.__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 ------------------------------------- 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 >>> sqlalchemy.__version__ '0.9.8' ->>> +>>> Les méthodes spéciales