Un second cours de Python
(L3 level ~ In french) These notes are meant to be the backbone of a "second course" in Python programming. They assume that the students already have basic knowledge of programming in general and python in particular. They are really a collection of interesting concepts and pitfalls that most scientist will come across in their day to day job.
I used them during the "Advanced Python Programming" lectures taught by Dr. Pierre Vincens in 2018 in the Biology department of the École normale supérieure de Paris.
Antisèches Python pour Biologiste Pressé
Jupyter Notebook
Types de données primaires et opérateurs
Entiers, flottants Booléens Chaînes de caractères Un type spécial, NoneVariables
Structures de données
Listes (ordonné, modifiable) N-uplets ou Tuples (ordonné, immuable) Dictionnaires (clé/valeur, non-ordonné, modifiable) Ensembles (non-ordonné, modifiable)Structures de contrôle et Itérables
Fonctions
Compréhensions de listes
Classes
Modules
Fichiers
Expressions Régulières
Calcul numérique avec Numpy
Graphes avec Matplotlib
Calcul scientifique avec Scipy
Intégration numérique StatistiquesCalcul symbolique avec Sympy
Tableaux de données avec Pandas
Un point sur les variables et espaces de noms
Les variables en Python sont des références nommées
Objets immuables et modifiables, Attention aux pièges !
Les espaces de noms
Piège: les arguments par défaut des fonctions Un dernier example illustré La fermeture des espaces de nom (Avancé)Pourquoi Python est lent ? L'idée centrale derrière Numpy
Quel est l'avantage de numpy en terme de vitesse ?Les paradigmes de programmation
La place de la programmation dans la recherche
Le menuisier et l'architecte De l'abstraction Comment écrire des abstractions ?La programmation Impérative (et procédurale)
La programmation Orientée Objet
Créer un objet (Avancé) Accesseurs, Mutateurs et PropriétésLa programmation Fonctionnelle
Fonctions pures Comprendre les itérables Opérations de bases en programmation fonctionnelle: map, filter, reduce Applications partiellesRecherche reproductible et interfaces
Assurer le caractère pratique de son code
De l'importance d'une bonne interface L'interface console (CLI) avec argparse L'interface programmatique (API) avec un module Quelques mots surimport
Mais où sont les modules ?
Installer un module
Un path temporaire pour chaque projet: virtualenv
Écrire un paquet Python
Exercice: