Dans ce TP, on s'intéresse aux fondements du langage python et de la programmation orientée objet dans ce langage. Les compétences travaillées durant cette activité sont les suivantes :
- Comprendre et utiliser l'interpréteur Python
- Créer un package et des modules python
- Utiliser un environnement virtuel python
- Comprendre et utiliser le gestionnaire de paquets
pip
- Comprendre la notion d'objet en python
- Cloner ce repo :
git clone https://github.com/blavad/poo-python.git
- Ouvrer un terminal à l'emplacement
poo-python/TP1-Fondamentaux
Ce dossier est le votre pendant tout le TP. Toutes les manipulations doivent être faites à l'intérieur. Il contient déjà certains fichiers qui seront à lire et/ou compléter durant le TP.
1h00
Pour commencer
- Vérifier que python est bien installé (version >= 3.5)
- Quelle est sa version par défaut ?
- S'il s'agit de la version 2, vérifier que
python3
est également installé - Nous n'utiliserons désormais plus que la version 3
- S'il s'agit de la version 2, vérifier que
Interpréteur et premiers modules
-
Le dossier
tp1
est notre package -
Dans le dossier
tp1
créer un autre dossier nommétp1
et naviguer dedans (ce dossier contient le code source de notre package) -
Dans le dossier
tp1/tp1
créer le fichiermain.py
avec le contenu:print("> ------------------------------") print("> Module main") print("> ------------------------------")
-
Exécuter ce fichier en utilisant l'interpréteur. Indiquer la commande utilisé dans le compte-rendu. 🚩
-
Exécuter le module
tp1.main
. Que ce passe-t-il ? 🚩on utilisera pour cela la commande
python -m tp1.main
. -
Exécuter la commande
python -m tp1
. Que ce passe-t-il ? 🚩 -
Renommer le fichier
main.py
en__main__.py
et réessayer. Conclure. 🚩 -
Dans le dossier
tp1/tp1/math
créer le moduleaddition.py
avec le contenu:def addition(a, b): return a + b print("Hey, 3 + 2 = ", addition(3, 2))
-
Exécuter ce module. Indiquer la commande utilisé dans le compte-rendu. 🚩
Plus de modules
On souhaite désormais utiliser la fonction addition
dans notre programme __main__.py
.
-
Importer la fonction
addition
dans le fichier__main__.py
et changer la ligneprint("> Module 'main'")
parprint(addition(8,8))
. Qu'observe-t-on ? 🚩 -
Corriger ce problème.
💡 on pourra utiliser la variable build-in
__name__
-
Dans le dossier
tp1/tp1/math
créer le fichier__init__.py
avec le contenu:from .addition import addition
Changer en conséquence l'importation de la fonction
addition
dans__main__.py
from tp1.math import addition
-
Ajouter une fonction
np_addition
au moduletp1.math
Cette fonction prend deux listes en entrée, les transforme en array numpy et calcule leur somme.
-
(Optionnel) Ajouter une fonction
aire
au moduletp1.math
.Cette fonction calcule l'aire d'un cercle en fonction de son rayon.
-
(Optionnel) Dans
tp1
, créer le moduletp1.argv
qui affiche le nombre et la liste des arguments passés en paramètre.
45min
Environnement virtuel
-
Revener dans le dossier
TP1-Fondamentaux
-
Créer un environnement virtuel python avec le nom
.env
. -
Analyser le contenu du dossier
.env
. Que contient-il ? 🚩 -
Activer cet environnement virtuel.
-
Afficher la liste des paquets installés dans l'environnement virtuel.
-
Comparer à la liste des paquets python installés sur votre machine.
-
Installer les paquets nécessaires au bon fonctionnement du module
tp1
(numpy).On pourra valider que la commande
python -m tp1.tp1
s'exécute bien. -
Créer le fichier
requirements.txt
qui contient les dépendances de notre package.
Installer et utiliser notre module
- Sortir de l'environnement virtuel
.env
et en créer un second nommé.tp1-env
. - Dans ce second environnement virtuel, installer tous les requirements du fichier
requirements.txt
en une ligne. Indiquer la commande utilisé dans le compte-rendu. 🚩 - Installer également votre package
tp1
. - Vérifier son installaton en exécutant le fichier
tests/test-tp1-install.py
Vous pouvez dès à présent commencer le TP n°2 sur les objets et classes python.