Introduction à Python
IA
QCM
1. Python est un langage _______? 4. Quel est le type de données pour un
A interprété caractère en python?
B machine A chr
C compilé B char
D binaire C character
2. En python 3, que fait l’opérateur // ? D python ne possède aucun type de
A Division entière données pour les caractères, ils sont
traités comme des (String).
B Retourne le reste
5. En python, quel mot clé est utilisé pour
C Division du float par zéro commencer une fonction?
D idem a ** b A function
3. Quelle est la sortie pour 'python' [-3] ? B fun
A ‘h’ C def
B ‘t’ D import
C ‘o’
D Erreur : index négatif.
Algorithme vs Programme
Algorithmie Programme
• Solution « informatique » relative à un • Transcription d’un algorithme avec une syntaxe
problème prédéfinie
• Suite d’actions (instructions) appliquées sur • Python
des données • Même principes fondamentaux que les autres
• 3 étapes principales : langages objets (Delphi, Java, C#, etc.)
1. saisie (réception) des données • Python s’enrichit de bibliothèques de calcul
2. Traitements spécialisées (mathématique, bio informatique,
3. restitution (application) des résultats etc.)
Mode compilé vs mode interprété
Langage interprété : + portabilité application ; - lenteur (R, VBA, Python…)
Langage compilé : + rapidité ; - pas portable
(solution possible : write once, compile anywhere ; ex. Lazarus)
Langage pseudo-compilé : + portabilité plate-forme ; - lenteur (?)
(principe : write once, run anywhere ; ex. Java et le principe JIT)
Python est interprété, il est irrémédiablement lent, mais… on peut lui
associer des librairies intégrant des fonctions compilées qui, elles, sont
très rapides.
Cf. « Why Python is Slow », « PythonSpeed – Performance Tips ».
Etapes de conception d’un programme (Génie Logiciel)
1. Déterminer les besoins et fixer les objectifs : que doit faire le logiciel, dans quel cadre va-t-il
servir, quels seront les utilisateurs types ? On rédige un cahier des charges avec le
commanditaire du logiciel (Remarque : commanditaire = maître d’ouvrage ; réalisateur =
maître d’œuvre)
2. Conception et spécifications : quels sont les fonctionnalités du logiciel, avec quelle interface ?
3. Programmation : modélisation et codage
4. Tests : obtient-on les résultats attendus, les calculs sont corrects, y a-t-il plantage et dans
quelles circonstances ? (tests unitaires, tests d’intégration, etc.)
5. Déploiement : installer le chez le client (vérification des configurations, installation de
l’exécutable et des fichiers annexes, etc.)
6. Maintenance : corrective, traquer les bugs et les corriger (patches) ; évolutive (ajouter des
fonctionnalités nouvelles au logiciel : soit sur l’ergonomie, soit en ajoutant de nouvelles
procédures)
Le langage de programmation Python
Python est un langage de programmation interprété. Il est associé à un
interpréteur de commandes disponible pour différents OS (Windows, Linux, Mac
OS X, etc.)
C’est un « vrai » langage c.-à-d. types de données, branchements conditionnels,
boucles, organisation du code en procédures et fonctions, objets et classes,
découpage en modules.
Très bien structuré, facile à appréhender, c’est un langage privilégié pour
l’enseignement 1, 2.
Mode d’exécution : transmettre à l’interpréteur Python le fichier script « .py »
Python est associé à de très nombreuses librairies très performantes,
notamment des librairies de calcul scientifique (Numpy, SciPy, Pandas, etc.).
De fait, il est de plus en plus populaire, y compris auprès des data scientists.
Il est plus généraliste que R qui est vraiment tourné vers les statistiques.
Python : un langage structuré
Données typées. Python propose les types usuels de la
programmation : entier, réels, booléens, chaîne de caractères.
Structures avancées de données. Gestion des collections de
valeurs (énumérations, listes) et des objets structurés
(dictionnaires, classes)
Séquences d’instructions, c’est la base même de la
programmation, pouvoir écrire et exécuter une série de
commandes sans avoir à intervenir entre les instructions.
Structures algorithmiques : les branchements conditionnels et
les boucles.
Python : un langage structuré
Les outils de la programmation structurée : pouvoir regrouper
du code dans des procédures et des fonctions. Cela permet de
mieux organiser les applications.
Organisation du code en modules. Fichiers « .py » que l’on peut
appeler dans d’autres programmes avec la commande import
Possibilité de distribution des modules : soit directement les
fichiers « .py », soit sous forme d’extensions prêtes à l’emploi.
Python est « case sensitive », il différencie les termes écrits en
minuscule et majuscule. Des conventions de nommage existent.