Cours de Python
https://python.sdv.univ-paris-diderot.fr/
Patrick Fuchs et Pierre Poulain
prénom [point] nom [arobase] univ-paris-diderot [point] fr
version du 7 septembre 2018
Université Paris Diderot-Paris 7, Paris, France
Ce document est sous licence
Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 France (CC BY-SA 3.0 FR)
2 Cours de Python / Université Paris Diderot - Paris 7 / UFR Sciences du Vivant
Table des matières
1 Introduction 11
1.1 Quelques mots sur l’origine de ce cours. . . 11
1.2 Remerciements . . . 11
1.3 Avant de commencer . . . 12
1.4 C’est quoi Python ?. . . 12
1.5 Premier contact avec Python sous Linux . . . 13
1.6 Premier programme Python . . . 14
1.6.1 Appel de l’interpréteur. . . 14
1.6.2 Appel direct du script . . . 14
1.7 Commentaires. . . 15
1.8 Notion de bloc d’instructions et d’indentation . . . 15
1.9 Python 2 ou Python 3 ? . . . 16
2 Variables 17 2.1 Définition d’une variable . . . 17
2.2 Les types de variables . . . 18
2.3 Nommage des variables . . . 18
2.4 Opérations . . . 18
2.4.1 Opérations sur les types numériques . . . 18
2.4.2 Opérations sur les chaînes de caractères . . . 19
2.4.3 Opérations illicites . . . 19
2.5 La fonction type() . . . 20
2.6 Conversion de types . . . 20
2.7 Note sur la division. . . 20
2.8 Note sur le vocabulaire et la syntaxe . . . 21
3 Affichage 23 3.1 Écriture formatée . . . 23
3.2 Ancienne méthode de formatage des chaînes de caractères . . . 26
3.3 Note sur le vocabulaire et la syntaxe . . . 27
3.4 Exercices . . . 27
3.4.1 Affichage dans l’interpréteur et dans un programme . . . 27
3.4.2 Poly-A . . . 27
3.4.3 Poly-A et poly-GC . . . 27
3.4.4 Écriture formatée. . . 27
3.4.5 Écriture formatée 2. . . 28
4 Listes 29 4.1 Définition . . . 29
4.2 Utilisation . . . 29
4.3 Opération sur les listes . . . 30
4.4 Indiçage négatif . . . 31
Table des matières Table des matières
4.5 Tranches. . . 31
4.6 Fonction len() . . . 32
4.7 Les fonctions range() et list() . . . 32
4.8 Listes de listes . . . 33
4.9 Exercices . . . 33
4.9.1 Jours de la semaine . . . 34
4.9.2 Saisons . . . 34
4.9.3 Table des 9 . . . 34
4.9.4 Nombres pairs . . . 34
5 Boucles et comparaisons 35 5.1 Boucles for . . . 35
5.1.1 Principe . . . 35
5.1.2 Fonction range() . . . 37
5.1.3 Nommage de la variable d’itération . . . 37
5.1.4 Itération sur les indices . . . 37
5.2 Comparaisons . . . 39
5.3 Boucles while . . . 40
5.4 Exercices . . . 40
5.4.1 Boucles de base . . . 41
5.4.2 Boucle et jours de la semaine . . . 41
5.4.3 Table des 1 . . . 41
5.4.4 Nombres pairs et impairs . . . 41
5.4.5 Calcul de moyenne . . . 41
5.4.6 Produit de nombres consécutifs . . . 41
5.4.7 Triangle . . . 41
5.4.8 Triangle inversé . . . 42
5.4.9 Triangle gauche . . . 42
5.4.10 Triangle isocèle . . . 42
5.4.11 Parcours de matrice . . . 43
5.4.12 Parcours de demi-matrice sans la diagonale (exercice ++) . . . 43
5.4.13 Sauts de puce . . . 44
5.4.14 Suite de Fibonacci (exercice +++) . . . 44
6 Tests 47 6.1 Définition . . . 47
6.2 Tests à plusieurs cas . . . 47
6.3 Tests multiples . . . 49
6.4 Instructions break et continue . . . 50
6.5 Tests de valeur sur des réels . . . 50
6.6 Exercices . . . 51
6.6.1 Jours de la semaine . . . 51
6.6.2 Séquence complémentaire d’un brin d’ADN . . . 51
6.6.3 Minimum d’une liste . . . 51
6.6.4 Fréquence des acides aminés. . . 51
6.6.5 Notes et mention d’un étudiant . . . 52
6.6.6 Nombres pairs . . . 52
6.6.7 L’énigme du père Fouras. . . 52
6.6.8 Conjecture de Syracuse (exercice +++) . . . 52
6.6.9 Attribution simple de la structure secondaire des résidus d’une protéine (exercice +++) . . . 53
6.6.10 Détermination des nombres premiers inférieurs à 100 (exercice +++) . . . 53
6.6.11 Recherche d’un nombre par dichotomie (exercice +++) . . . 54
4 Cours de Python / Université Paris Diderot - Paris 7 / UFR Sciences du Vivant
Table des matières Table des matières
7 Fichiers 57
7.1 Lecture dans un fichier . . . 57
7.1.1 Méthode read() . . . 58
7.1.2 Méthode readline() . . . 58
7.1.3 Méthodes seek() et tell() . . . 59
7.1.4 Itérations directement sur le fichier . . . 59
7.2 Écriture dans un fichier . . . 60
7.3 Méthode optimisée d’ouverture et de fermeture de fichier. . . 60
7.4 Note sur les retours chariots sous Unix et sous Windows . . . 61
7.5 Importance des conversions de types avec les fichiers . . . 62
7.6 Exercices . . . 62
7.6.1 Lecture et saut de ligne . . . 62
7.6.2 Écriture et saut de ligne . . . 62
7.6.3 Structures secondaires . . . 62
7.6.4 Spirale (exercice +++) . . . 62
8 Modules 65 8.1 Définition . . . 65
8.2 Importation de modules . . . 65
8.3 Obtenir de l’aide sur les modules importés . . . 66
8.4 Modules courants . . . 67
8.5 Module sys : passage d’arguments. . . 68
8.6 Module os . . . 69
8.7 Exercices . . . 70
8.7.1 Racine carrée . . . 70
8.7.2 Cosinus . . . 70
8.7.3 Liste de fichiers dans un répertoire . . . 70
8.7.4 Affichage temporisé . . . 70
8.7.5 Séquences aléatoires de chiffres . . . 70
8.7.6 Séquences aléatoires de bases . . . 71
8.7.7 Jour de naissance . . . 71
8.7.8 Détermination du nombre pi par la méthode Monte Carlo (exercice +++) . . . 71
9 Fonctions 73 9.1 Principe et généralités . . . 73
9.2 Définition . . . 74
9.3 Passage d’arguments . . . 75
9.4 Variables locales et variables globales . . . 76
9.5 Exercices . . . 80
9.5.1 Fonctions et pythontutor . . . 80
9.5.2 Fonction puissance . . . 81
9.5.3 Fonction pyramide . . . 81
9.5.4 Fonction nombre premier . . . 81
9.5.5 Fonction complement . . . 81
9.5.6 Fonction distance . . . 82
9.5.7 Fonctions distribution et stat . . . 82
9.5.8 Fonction distance à l’origine. . . 82
9.5.9 Fonction aire sous la courbe (exercice +++) . . . 82
10 Plus sur les chaînes de caractères 85 10.1 Préambule. . . 85
10.2 Chaînes de caractères et listes . . . 85
10.3 Caractères spéciaux . . . 86