0% ont trouvé ce document utile (0 vote)
128 vues6 pages

Cours Complet de Python PDF

Ce document est un cours sur Python. Il contient de nombreuses sections décrivant des concepts fondamentaux de Python comme les variables, les listes, les boucles, les fonctions d'affichage. Le document est organisé de manière pédagogique pour introduire progressivement les notions.

Transféré par

angelfree68
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
128 vues6 pages

Cours Complet de Python PDF

Ce document est un cours sur Python. Il contient de nombreuses sections décrivant des concepts fondamentaux de Python comme les variables, les listes, les boucles, les fonctions d'affichage. Le document est organisé de manière pédagogique pour introduire progressivement les notions.

Transféré par

angelfree68
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours de Python

[Link]

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)
[Link]
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

3
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

Cours de Python / Université Paris Diderot - Paris 7 / UFR Sciences du Vivant 5


Table des matières Table des matières

10.4 Méthodes associées aux chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . 86


10.5 Extraction de valeurs numériques d’une chaîne de caractères . . . . . . . . . . . . . . . 88
10.6 Conversion d’une liste de chaînes de caractères en une chaîne de caractères . . . . . . 88
10.7 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
10.7.1 Parcours d’une liste de chaînes de caractères . . . . . . . . . . . . . . . . . . . 90
10.7.2 Fréquence des bases dans une séquence nucléique . . . . . . . . . . . . . . . . . 90
10.7.3 Conversion des acides aminés du code à trois lettres au code à une lettre . . . . 90
10.7.4 Distance de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.7.5 Palindrome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.7.6 Mot composable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.7.7 Alphabet et pangramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.7.8 Affichage des carbones alpha d’une structure de protéine . . . . . . . . . . . . . 92
10.7.9 Calcul des distances entre les carbones alpha consécutifs d’une structure de protéine 92

11 Plus sur les listes 95


11.1 Propriétés des listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
11.2 Test d’appartenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
11.3 Copie de listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
11.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
11.4.1 Tri de liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
11.4.2 Séquence nucléique aléatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
11.4.3 Séquence nucléique complémentaire . . . . . . . . . . . . . . . . . . . . . . . . 99
11.4.4 Doublons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
11.4.5 Séquence nucléique aléatoire 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
11.4.6 Triangle de Pascal (Exercice +++) . . . . . . . . . . . . . . . . . . . . . . . . . 100

12 Plus sur les fonctions 101


12.1 Appel d’une fonction dans une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . 101
12.2 Fonctions récursives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
12.3 Portée des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
12.4 Portée des listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
12.5 Règle LGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
12.6 Recommandations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
12.7 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
12.7.1 Prédire la sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

13 Dictionnaires et tuples 109


13.1 Dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
13.1.1 Itération sur les clefs pour obtenir les valeurs . . . . . . . . . . . . . . . . . . . 109
13.1.2 Méthodes keys() et values() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
13.1.3 Existence d’une clef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
13.1.4 Liste de dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
13.2 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
13.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
13.3.1 Composition en acides aminés . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
13.3.2 Mots de 2 lettres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
13.3.3 Mots de 3 et 4 lettres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
13.3.4 Mots de 2 lettres de Saccharomyces cerevisiae . . . . . . . . . . . . . . . . . . . 112
13.3.5 Mots de n lettres et fichiers genbank . . . . . . . . . . . . . . . . . . . . . . . . 112
13.3.6 Mots de n lettres du génome d’E. Coli . . . . . . . . . . . . . . . . . . . . . . . 112
13.3.7 Dictionnaire et carbone alpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
13.3.8 Dictionnaire et PDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
13.3.9 Barycentre d’une protéine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6 Cours de Python / Université Paris Diderot - Paris 7 / UFR Sciences du Vivant

Vous aimerez peut-être aussi