[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
152 vues134 pages

Introduction à Python et Programmation

Ce document présente une introduction à la programmation Python. Il explique les concepts de base comme les variables, les opérations mathématiques, les chaînes de caractères, les entrées et sorties. Le document est destiné aux étudiants pour leur formation en programmation Python.

Transféré par

Mohamed Bourguiba
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)
152 vues134 pages

Introduction à Python et Programmation

Ce document présente une introduction à la programmation Python. Il explique les concepts de base comme les variables, les opérations mathématiques, les chaînes de caractères, les entrées et sorties. Le document est destiné aux étudiants pour leur formation en programmation Python.

Transféré par

Mohamed Bourguiba
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
Vous êtes sur la page 1/ 134

Formation PYHTON

Année universitaire : 2019-2020


Programmation

3/28/2020 2
Introduction

Programmation

 Programme : Suite d’instructions définies dans un langage donné.

 Langage machine : directement compréhensible par la machine.

 Langage d’assemblage (ou assembleur) : très facilement traduisible pour être compris par

la machine.

 Langage de programmation : doit être compilé ou interprété pour être compris par la

machine.
3/28/2020 3
Introduction

Programmation

Il existe deux méthodes pour effectuer la traduction du code source en langage machine :
 Interprétation

Code Interpréteur Résultat


Source

 Compilation

Code Résultat
Code Compilateur Exécuteur
objet
Source
(binaire)
3/28/2020 4
Introduction

Mode compilé & mode interprété

Python est un langage de programmation interprété, c'est-à-dire que les instructions que

vous lui envoyez sont « transcrites » en langage machine au fur et à mesure de leur lecture.

D'autres langages (comme le C / C++) sont appelés « langages compilés » car, avant de

pouvoir les exécuter, un logiciel spécialisé se charge de transformer le code du programme

en langage machine. On appelle cette étape la « compilation ». À chaque modification du

code, il faut rappeler une étape de compilation.

3/28/2020 5
Introduction

Mode compilé & mode interprété


Les avantages d'un langage interprété sont :

 la simplicité : on ne passe pas par une étape de compilation avant d'exécuter son programme.

 la portabilité : un langage tel que Python est censé fonctionner aussi bien sous Windows que sous Linux ou Mac OS, et
on ne devrait avoir à effectuer aucun changement dans le code pour le passer d'un système à l'autre. Cela ne veut pas
dire que les langages compilés ne sont pas portables, loin de là! Mais on doit utiliser des compilateurs différents et, d'un
système à l'autre, certaines instructions ne sont pas compatibles, voire se comportent différemment.

En contrepartie, un langage compilé se révélera bien plus rapide qu'un langage interprété : la traduction à la volée de votre
programme ralentit l'exécution bien que cette différence tende à se faire de moins en moins sentir au fil des améliorations.
De plus, il faudra installer Python sur le système d'exploitation que vous utilisez pour que l'ordinateur puisse comprendre
votre code.
3/28/2020 6
Introduction

Votre premier programme sous Python


On va commencer par création d’un simple programme pour afficher « Hello World! »

En langage python on utilise la fonction print pour faire sortir ou afficher un texte :

« >>> » Ces trois chevrons signifient : « je suis prêt à recevoir les instructions ».

Les langages de programmation respectent une syntaxe claire. Si par exemple je doit afficher un message pour dire
qu’on va commencer à développer, sans utiliser la fonction print:

3/28/2020 7
Introduction

Les bases du langage Python

3/28/2020 8
Introduction

Python pour calculer


Addition, soustraction, multiplication, division:

 Pour effectuer ces opérations, on utilise respectivement les symboles +, -, * et /.

 La division par Zéro en Python produit bien évidemment une erreur

3/28/2020 9
Introduction

Python pour calculer


Division entière et modulo

 Float est utilisé en Python pour représenter les nombres qui ne sont pas des entiers.
Les ordinateurs ne peuvent pas stocker les types floats parfaitement, et on ne peut pas écrire un décimale complet (par
exemple 1/3 (0.3333333333333333...).

 Pour déterminer le quotient et le reste d’une division, on utilise les opérateurs “floor division” (//) et “modulo” (%)

Float
Quotient

Reste

3/28/2020 10
Introduction

Les chaînes de caractères :String


Pour entrer un texte dans un langage de programmation, on utilise le type string. Ce type de donnée permet de stocker une
série de lettres.
On peut écrire une chaîne de caractères de différentes façons :

 Entre guillemets ("ceci est une chaîne de caractères")

 Entre apostrophes ('ceci est une chaîne de caractères')

Entre triples guillemets ("""ceci est une chaîne de caractères""" )

Exemple:

3/28/2020 11
Introduction

Les chaînes de caractères : String


Si vous utilisez les délimiteurs simples (le guillemet ou l'apostrophe) pour encadrer une chaîne de caractères, il se pose le

problème des guillemets ou apostrophes que peut contenir ladite chaîne. Par exemple, si vous tapez chaine = 'J ‘aime le

Python!', vous obtenez le message suivant :

On insère ainsi un caractère antislash « \ » avant les apostrophes contenues dans le message.

3/28/2020 12
Introduction

Les chaînes de caractères : String


Python facilite le retour à la ligne sans écrire « \n » pour écrire des mots dans une chaine caractère avec retour à la ligne.

Créer une chaine de caractère string en utilisant triples guillemets, et la nouvelle ligne sera crée en tapant « entrer »

3/28/2020 13
Introduction

Les chaînes de caractères : String


Python ne supporte pas un type de caractère, ils sont traités comme des chaînes de
longueur « 1 », également considérées comme une sous-chaîne.
Nous utilisons des crochets pour le découpage avec l'index ou les indexer pour obtenir une
sous-chaîne.

3/28/2020 14
Introduction

Les chaînes de caractères : String


Vous pouvez mettre à jour Python String en réaffectant une variable à une autre chaîne. La
nouvelle valeur peut être liée à la valeur précédente ou à une chaîne complètement différente.

3/28/2020 15
Introduction

Les chaînes de caractères : String


Méthode Python String replace ()
La méthode replace () renvoie une copie de la chaîne dans laquelle les valeurs de l'ancienne
chaîne ont été remplacées par la nouvelle valeur.

3/28/2020 16
Introduction

Les chaînes de caractères : String


Changer les chaînes majuscules et minuscules
En Python, vous pouvez même changer la chaîne en majuscule ou en minuscule.

3/28/2020 17
Introduction

Les chaînes de caractères : String


Utilisation de la fonction "join" pour la chaîne
La fonction join est un moyen plus souple de concaténer une chaîne. Avec la fonction join,
vous pouvez ajouter n’importe quel caractère dans la chaîne.

Exemple:

3/28/2020 18
Introduction

Les chaînes de caractères : String


Chaîne d'inversion
En utilisant la fonction reverse, vous pouvez inverser la chaîne. Par exemple, si nous avons la
chaîne « Python developper", puis si vous appliquez le code pour la fonction inverse, comme
indiqué ci-dessous.

3/28/2020 19
Introduction

Les chaînes de caractères : String


Startswith and endswith

3/28/2020 20
Introduction

Les entrées / Sorties (Inputs & outputs)


Chaque programme prend des entrées (Inputs) et produit des sorties (Outputs)

 Output

En Python, on utilise la fonction print pour obtenir la sortie. Cette fonction permet d’afficher une représentation textuelle

d’une chose écrite.

 Input

Pour obtenir une entrée d’un utilisateur en Python, on utilise la fonction input

 Les fonction print et input ne sont pas très utilisées dans la console de Python qui fait la sortie et l’entrée,

3/28/2020 21
Introduction

Les opérations sur les chaines de caractères


Concatenation

 Comme pour les types entier et les types float, on peut associer des chaines de caractères (string) à l’aide d’une technique
appelée concatenation, qu’on peut l’appliquer sur n’importe qulles deux chaines de caractères.

 On ne peut pas concaténer une chaine de caractères avec un nombre (entier, float…)

 Même si une chaîne de caractères contient des nombres, ils sont quand même ajoutés sous forme de chaînes plutôt que d'entiers.

 L'ajout d'une chaîne à un nombre produit une erreur, car même s’ils peuvent sembler similaires, il s'agit de deux types différents.

3/31/2020 22
Introduction

Les opérations sur les chaines de caractères


Multiplication

 Les chaînes peuvent être également multipliées par des entiers. Cela produit

une version répétée de la chaîne d'origine.

 L'ordre de la chaîne et de l'entier n'a pas d'importance, mais la chaîne vient

généralement en premier.

 Les chaînes ne peuvent pas être multipliées par des chaînes.

 Les chaînes ne peuvent pas être multipliées par des flottants, même dans le
cas où les flottants sont des nombres entiers.

3/28/2020 23
Introduction

Conversion des Types


Multiplication

En Python, il est impossible d'effectuer certaines opérations en raison des types impliqués. Par exemple, on ne peut pas

ajouter deux chaînes contenant les nombres 2 et 3 ensemble pour produire le nombre entier 5, car l'opération sera effectuée

sur des chaînes, ce qui donne le résultat '23'.

 La solution à ce problème est la conversion de type.

Dans cet exemple, on utilise la fonction int.

3/28/2020 24
Introduction

Conversion des Types


Un autre exemple de conversion de type consiste à convertir les entrées utilisateur (String) en nombres (Integer ou float),

afin de permettre l'exécution des calculs.

 Passer des valeurs non-entières ou flottantes provoquera une erreur.

3/28/2020 25
Introduction

Les variables
 Les variables jouent un rôle très important dans la plupart des langages de programmation, et Python ne fait pas

exception.

 Une variable vous permet de stocker une valeur en lui attribuant un nom, qui peut être utilisé pour faire référence à la

valeur ultérieurement dans le programme.

 Pour assigner une variable, utilisez un signe égal. Contrairement à la plupart des lignes de code que nous avons

examinées jusqu'à présent, il ne produit aucune sortie sur la console Python.

3/28/2020 26
Introduction

Les variables
 Les variables peuvent être réaffectées autant de fois que vous le souhaitez afin de modifier leur valeur.

 En Python, les variables n'ont pas de types spécifiques. Vous pouvez donc affecter une chaîne à une variable, puis

affecter un entier à la même variable.

 Cependant, ce n'est pas une bonne pratique. Pour éviter les erreurs, Eviter l’affectation de la même variable avec
différents types de données.

3/28/2020 27
Introduction

Les variables
 Essayer de référencer une variable qu’on n’a pas affecté provoque une erreur.

 On peut utiliser l'instruction del pour supprimer une variable, ce qui signifie que la référence du nom à la valeur est

supprimée

3/28/2020 28
Introduction

Les variables
 Certains mots-clés de Python sont réservés, c'est-à-dire que vous ne pouvez pas créer des variables portant ce nom.

 Ces mots-clés sont utilisés par Python, vous ne pouvez pas construire de variables portant ces noms. Vous allez découvrir

dans la suite de ce cours la majorité de ces mots-clés et comment ils s'utilisent.

3/28/2020 29
Les structures de controle

Les structures de controle

3/28/2020 30
Les structures de controle

Les structures conditionnelles


Boolean
Un autre type de variable sous Python est le type boolean. Il existe deux valeurs booléennes: True et False. Ils peuvent être créés

en comparant des variables, par exemple en utilisant l'opérateur égal ==.

3/31/2020 31
Les structures de controle

Les structures conditionnelles


Comparaison
 Un autre opérateur de comparaison, l'opérateur non égal (! =), Est évalué à True si les éléments comparés ne sont pas

égaux et False s'ils le sont.

 Python a également des opérateurs qui déterminent si un nombre (float ou entier) est supérieur ou inférieur à un autre.

Ces opérateurs sont > et < respectivement.

3/28/2020 32
Les structures de contrôle

Les structures conditionnelles


 Jusqu'à présent, nous avons testé des instructions d'une façon linéaire : l'interpréteur exécutait au fur et à
mesure le code que vous saisissiez dans la console. Mais nos programmes seraient bien pauvres si nous ne
pouvions, de temps à autre, demander à exécuter certaines instructions dans un cas, et d'autres instructions
dans un autre cas.

 Dans cette partie, on va parler des structures conditionnelles, qui vont nous permettre de faire des tests et
d'aller plus loin dans la programmation.

 Les conditions permettent d'exécuter une ou plusieurs instructions dans un cas, d'autres instructions dans un
autre cas.

3/28/2020 33
Les structures de contrôle

Les structures conditionnelles


La structure conditionnelle « if »:

 On peut utiliser les instructions if pour exécuter du code si une condition donnée est remplie.
 Si une expression est évaluée à True, certaines instructions sont exécutées. Sinon, ils ne sont pas effectués.
 Une déclaration if ressemble à ceci:

if condition:
instruction

Python utilise l'indentation (espace au début d'une ligne) pour délimiter des blocs de code. D'autres langages,
tels que le C, utilisent des accolades pour accomplir cela, mais l'indentation en Python est obligatoire; les
programmes ne fonctionneront pas sans cela.
3/28/2020 34
Les structures de contrôle

Les structures conditionnelles


La structure conditionnelle « if »:

Exemple:
if a > 0:
print ("a est supérieur à 0 ")
if a < 0:
print ("a est inférieur à 0 ") print ("fin du programme")

Ecrire ce code sur votre IDE Python et afficher le résultat du programme

3/28/2020 35
Les structures de contrôle

Les structures conditionnelles


La structure conditionnelle complète « if, elif et else »:
La première forme de condition que l'on vient de voir est pratique mais assez incomplète.
Considérons, par exemple, une variable a de type entier. On souhaite faire une action si cette variable est positive et
une action différente si elle est négative. Il est possible d'obtenir ce résultat avec la forme simple d'une condition :
>>> a = 5
>>> if a > 0:
print("a est positif.")
if a < 0:
print("a est négatif.")
Amusez-vous à changer la valeur de a et exécutez à chaque fois les conditions ; vous obtiendrez des messages
différents, sauf si a est égal à 0. En effet, aucune action n'a été prévue si a vaut 0.
Cette méthode n'est pas optimale, tout d'abord parce qu'elle nous oblige à écrire deux conditions séparées pour tester
une même variable.
 La 3/28/2020
condition if est donc bien pratique mais insuffisante 36
Les structures de contrôle

Les structures conditionnelles


La structure conditionnelle complète « if, elif et else »:
 L’instruction « else »
Une instruction else suit une instruction if et contient le code appelé lorsque l'instruction if est évaluée à False.
Comme avec les instructions if, le code à l'intérieur du bloc doit être mis en retrait.
x=4
if x == 5:
print("Yes")
else:
print("No")

3/28/2020 37
Les structures de contrôle

Les structures conditionnelles


La structure conditionnelle complète « if, elif et else »:
On peut chaîner des instructions if et else pour déterminer quelle option d'une série de possibilités est vraie.

3/28/2020 38
Les structures de contrôle

Les structures conditionnelles


La structure conditionnelle complète « if, elif et else »:
 L’instruction « elif »
Le mot clé elif est une contraction de « else if », que l'on peut traduire très littéralement par « sinon si ». Dans
l'exemple que nous venons de voir, l'idéal serait d'écrire :

 si a est strictement supérieur à 0, on dit qu'il est positif ;


 sinon si a est strictement inférieur à 0, on dit qu'il est négatif ;
 sinon, (a ne peut qu'être égal à 0), on dit alors que a est nul.

3/28/2020 39
Les structures de contrôle

Les structures conditionnelles


La structure conditionnelle complète « if, elif et else »:
 Les opérateurs de comparaison
Les conditions doivent nécessairement introduire de nouveaux opérateurs, dits opérateurs de comparaison.

3/28/2020 40
Les structures de contrôle

Les structures conditionnelles


Logique booléenne:
 La logique booléenne est utilisée pour créer des conditions plus complexes pour les instructions qui reposent
sur plusieurs conditions.

 Les opérateurs booléens de Python sont: and, or, and not.


 L'opérateur « and » prend deux arguments, et évalue comme True si, et seulement si, ses deux arguments
sont True. Sinon, la valeur est False.

 L'opérateur « or » prend également deux arguments. Il est évalué sur True si l'un de ses arguments (ou les
deux) est True et sur False si les deux arguments sont False.
 Contrairement aux autres opérateurs que nous avons vus jusqu'à présent, « not » prend un seul argument, et
l'inverser. Le résultat de not True est False et not False devient True.

3/28/2020 41
Les structures de contrôle

Les structures conditionnelles


Logique booléenne:
Exemple:

3/28/2020 42
Les structures de contrôle

Les structures conditionnelles


Priorité des opérateurs
 La priorité des opérateurs est un concept très important en programmation. C'est une extension de l'idée mathématique d'ordre

des opérations (la multiplication étant effectuée avant l'addition, etc.) pour inclure d'autres opérateurs, tels que ceux de la

logique booléenne.

 Le code ci-dessous montre que equal (= =) a une priorité supérieure à or :

3/28/2020 43
Les structures de contrôle

Les structures conditionnelles


 Le tableau suivant liste tous les opérateurs
de Python, de la priorité la plus élevée à
la plus basse.

3/28/2020 44
Les structures de contrôle

Les boucles
Boucle while
 Une instruction if est exécutée une fois si sa condition est évaluée à True et jamais si elle est évaluée à False.

 Une instruction while est similaire, mais elle peut être exécutée plusieurs fois. Les instructions qu'il contient sont

exécutées à plusieurs reprises, tant que la condition est vraie. Une fois la valeur False évaluée, la section de code

suivante est exécutée.

 La syntaxe de while est :


while condition:
# instruction 1
# instruction 2
# ...
# instruction N
 Le code suivant présente une boucle while contenant une 45
variable dont le nombre va de 1 à 6, point auquel la boucle se termine.
Les structures de contrôle

Les boucles
Boucle while
Boucle infinie :
 La boucle infinie est un type spécial de boucle while; elle ne s’arrête jamais de courir. Sa condition reste toujours
vraie.

 Un exemple de boucle infinie:

while 2==2:

print(“Hello world!")

 On peut arrêter l'exécution du programme en utilisant le raccourci Ctrl-C ou en fermant le programme.

3/28/2020 46
Les structures de contrôle

Les boucles
Boucle while
break:
Pour terminer prématurément une boucle while, on peut utiliser l'instruction break.

Lorsqu'elle est rencontrée à l'intérieur d'une boucle, l'instruction break entraîne son
achèvement immédiat.

3/31/2020 47
Les structures de contrôle

Les boucles
Boucle while
 Exécuter ce code sur votre machine

while 1: # 1 est toujours vrai -> boucle infinie


lettre = input("Tapez 'Q' pour quitter : ")
if lettre == "Q":
print("Fin de la boucle")
break

3/28/2020 48
Les structures de contrôle

Les boucles
Boucle while

continue:
Le mot-clé continue permet de
continuer une boucle, en repartant
directement à la ligne du while ou
for. Un petit exemple s'impose :  continue est une declaration qui termine
l'itération en cours et continue avec la suivante

3/28/2020 49
Les structures de contrôle

Les boucles
Boucle while
 Exécuter ce code sur votre machine

i=1
while i < 30: # Tant que i est inférieure à 30
if i % 3 == 0:
i += 4 # On ajoute 4 à i
print("On incrémente i de 4. i est maintenant égale à", i)
continue # On retourne au while sans exécuter les autres Lignes
print("la variable i = ", i)
i += 1

3/28/2020 50
Les structures de contrôle

Les listes
 Les listes sont un autre type d'objet en Python. Ils sont utilisés pour stocker une liste indexée d'éléments.

 Une liste est créée en utilisant des crochets avec des virgules séparant les éléments.

 Vous pouvez accéder à certains éléments de la liste en utilisant son index entre crochets.

Exemple:

Liste vide

3/28/2020 51
Les structures de contrôle

Les listes
Les operations sur les listes
 En règle générale, une liste contient des éléments d'un seul type, mais il est également possible d'inclure plusieurs types différents.

 Les listes peuvent également être imbriquées dans d'autres listes.

3/28/2020 52
Les structures de contrôle

Les listes
Les operations sur les listes
 L'indexation en dehors de limite des valeurs possibles de liste provoque IndexError.

 Certains types, tels que les chaînes, peuvent être indexés comme des listes. Les chaînes d'indexation

se comportent comme si on indexe une liste contenant chaque caractère de la chaîne.

 Pour d'autres types, tels que les entiers, leur indexation est impossible et provoque une erreur
TypeError.

3/28/2020 53
Les structures de contrôle

Les listes
Les operations sur les listes
 L'élément à un certain index dans une liste peut être
réaffecté.

 Les listes peuvent être ajoutées et multipliées de la


même manière que les chaînes.

3/28/2020 54
Les structures de contrôle

Les listes
Les operations sur les listes
 Pour vérifier si un élément est dans une liste, l'opérateur in peut être utilisé. Il renvoie True si l'élément apparaît une ou plusieurs fois

dans la liste, et False sinon..

 Pour vérifier si un élément ne se trouve pas dans une liste, on utiliser l'opérateur not

3/28/2020 55
Les structures de contrôle

Les listes
Les functions appliquées sur les listes
 Une autre façon de modifier les listes consiste à utiliser la méthode append. Cela ajoute un élément à la fin

d'une liste existante

 Pour obtenir le nombre d'éléments dans une liste, on peut utiliser la fonction len

 La méthode insert est similaire à append, sauf qu'elle permet d'insérer un nouvel élément à n'importe quelle

position de la liste, non seulement à la fin.

 La méthode index recherche la première occurrence d'un élément de liste et renvoie son index. Si l'élément

ne figure pas dans la liste, il génère ValueError.

3/28/2020 56
Les structures de contrôle

Les listes
Les fonctions appliquées sur les listes
 Il existe quelques fonctions et méthodes utiles pour les listes.

• max (list) : Renvoie l'élément de liste avec la valeur maximale

• min (list) : Renvoie l'élément de liste avec la valeur minimale

• list.count (obj) : Retourne le nombre de fois qu'un élément apparaît dans une liste

• list.remove (obj) : Supprime un objet d'une liste

• list.reverse () : Inverse les objets d'une liste

3/28/2020 57
Les structures de contrôle

Les listes
Les fonctions appliquées sur les listes
 La fonction range crée une liste séquentielle de nombres.

 Si range est appelé avec un argument, il produit un objet avec des valeurs allant de 0 jusqu’à cet argument.

 S'il est appelé avec deux arguments, il produit des valeurs du premier au second.

 La fonction range peut avoir un troisième argument, qui détermine l'intervalle de la séquence produite. Ce

troisième argument doit être un entier.

3/28/2020 58
Les structures de contrôle

Les listes
Les fonctions appliquées sur les listes
all et any

3/28/2020 59
Les structures de contrôle

Les listes
Boucle for
 Parfois, on doit exécuter du code sur chaque élément de la liste. C'est ce qu'on appelle l'itération, et cela peut

être accompli avec une boucle while et une variable counter.

3/28/2020 60
Les listes
Boucle for
 L’itération dans une liste à l'aide d'une boucle while nécessite pas mal de code. Python fournit donc la boucle

for sous la forme d'un raccourci permettant d'obtenir le même résultat.

 Le même code de l'exemple précédent peut être écrit avec une boucle for, comme suit:

3/28/2020 61
Les structures de contrôle

Les listes
Boucle for
 La boucle for est couramment utilisée pour répéter du code un certain nombre de fois. Ceci est réalisé en

combinant des boucles for avec range des objets.

 Exécuter ce code sur votre machine et observez le résultat

 On n’a pas besoin d'appeler la liste pour la plage des objets (range) lorsqu'il est utilisé dans une boucle for,

car il n'est pas indexé. Par conséquent, une liste n'est pas obligatoire.
3/28/2020 62
Les structures de contrôle

Les dictionnaires
 Les dictionnaires sont des structures de données utilisées pour mapper des clés arbitraires en valeurs.

 Les listes peuvent être considérées comme des dictionnaires avec des clés de type entier dans une certaine plage.

 Les dictionnaires peuvent être indexés de la même manière que les listes, en utilisant des crochets contenant des

clés.

 Exemple:

 Essayer d'indexer une clé qui ne fait pas partie du dictionnaire renvoie une erreur KeyError.
3/28/2020 63
 Essayer d'indexer une clé qui ne fait pas partie du dictionnaire renvoie une erreur KeyError.
Les structures de contrôle

Les tuples
 Les tuples ressemblent beaucoup aux listes, sauf qu'ils sont immuables (ils ne peuvent pas être changés).

 En outre, ils sont créés à l'aide de parenthèses plutôt que de crochets.

3/28/2020 64
Les structures de contrôle

Les tuples
 Les tuples peuvent être créés sans les parenthèses, en séparant simplement les valeurs par des virgules.

Exemple:

3/28/2020 65
La programmation Mudulaire
Fonctions & Modules

La programmation modulaire

3/28/2020 66
La programmation Mudulaire

Fonctions & modules


Réutilisation du code

 La réutilisation du code est une partie très importante de la programmation dans toutes les langues.

L'augmentation de la taille du code rend la maintenance plus difficile.

 Pour qu'un grand projet de programmation réussisse, il est essentiel de respecter le principe «Ne vous répétez

pas» (Don't Repeat Yourself, or DRY). Nous avons déjà examiné une façon d’appliquer ce principe : en

utilisant des boucles. Dans ce module, nous explorerons deux autres: les fonctions et les modules.

3/28/2020 67
La programmation Modulaire

Fonctions & modules


Fonctions
 On a déjà utilisé des fonctions dans la partie précédente.

 Toute instruction consistant en un mot suivi d'informations entre parenthèses est un appel de fonction.

 Voici quelques exemples que vous avez déjà vus:

print("Hello world!")
range(2, 20) str(12)
range(10, 20, 3)

 Les mots devant les parenthèses sont des noms de fonctions et les valeurs séparées par des virgules à l'intérieur des
parenthèses sont des arguments de fonction.

 Les fonctions permettent de regrouper plusieurs instructions dans un bloc qui sera appelé grâce à un nom.

def nom_de_la_function ( parametre1,parametre2,parametre3, parametreN ) :


▪ # Bloc d'instructions
3/28/2020 68
La programmation Modulaire

Fonctions & modules


Arguments
 Toutes les définitions de fonctions que nous avons examinées jusqu'ici ont été des fonctions de zéro argument, appelées

avec des parenthèses vides. Cependant, la plupart des fonctions prennent des arguments.

 L'exemple ci-dessous définit une fonction qui prend un argument:

3/28/2020 69
La programmation Modulaire

Fonctions & modules


Arguments
 Les arguments de fonction peuvent être utilisés en tant que variables dans la définition de fonction. Cependant, ils ne

peuvent pas être référencés en dehors de la définition de la fonction. Ceci s'applique également aux autres variables crées

dans une fonction.

 Exécuter le code suivant sur votre machine

def function(variable):
variable += 1
print(variable)

function(7)
print(variable)

3/28/2020 70
La programmation Modulaire

Fonctions & modules


Retour des fonctions
 Certaines fonctions, telles que int ou str, renvoient une valeur pouvant être utilisée ultérieurement. Pour cela, on peut

utiliser l'instruction return.

 Une fois que vous retournez une valeur d'une fonction, celle-ci cesse immédiatement d'être exécutée. Tout code après la

déclaration de retour ne se produira jamais.

3/28/2020 71
La programmation Modulaire

Fonctions & modules


Les fonctions comme des objets
 Bien qu'elles soient crées différemment des variables normales, les fonctions sont comme n'importe quel autre type de

valeur. Elles peuvent être affectées et réaffectées à des variables, puis référencées par ces noms.

 Les fonctions peuvent être également utilisées comme arguments d'autres fonctions.
def multiply(x, y): def add(x, y):
return x * y return x + y

a=4 def do_twice(func, x, y):


b=7 return func(func(x, y), func(x, y))
operation = multiply
print(operation(a, b)) a=5
b = 10

print(do_twice(add, a, b))

3/28/2020 72
La programmation Modulaire

Fonctions & modules


Modules
 Les modules sont des morceaux de code développés pour remplir des tâches courantes,

telles que générer des nombres aléatoires, effectuer des opérations mathématiques, etc.

 La méthode de base pour utiliser un module consiste à ajouter import nom_module en

haut de votre code, puis à utiliser nom_module.var pour accéder aux fonctions et aux

valeurs portant le nom var dans le module.

3/28/2020 73
La programmation Modulaire

Fonctions & modules

La méthode import
Il existe un grand nombre de modules disponibles sous Python sans qu'il soit nécessaire d'installer des bibliothèques

supplémentaires. Pour cette partie, nous prendrons l'exemple du module math qui contient, comme son nom l'indique, des

fonctions mathématiques.

Lorsque on ouvre l'interpréteur Python, les fonctionnalités du module math ne sont pas incluses. Il s'agit en effet d'un

module, il vous appartient de l'importer si vous vous dites « tiens, mon programme risque d'avoir besoin de fonctions

mathématiques ». Nous allons voir une première syntaxe d'importation.

>>> import math


3/28/2020 74
La programmation Modulaire

Fonctions & modules


La méthode import
 Après l’importation du module math, toutes les fonctions mathématiques contenues dans ce module sont maintenant

accessibles. Pour appeler une fonction du module, il faut taper le nom du module suivi d'un point « . » puis du nom de la

fonction. C'est la même syntaxe pour appeler des variables du module. Voyons un exemple :

 Un autre l'exemple utilise le module random pour générer des nombres aléatoires:

3/28/2020 75
La programmation Modulaire

Fonctions & modules


La méthode import
 Un autre exemple utilise le module random pour générer des nombres aléatoires en

utilisant la fonction randint:

Le code utilise la fonction randint définie dans le module random pour imprimer 5
nombres aléatoires allant de 1 à 11.

3/28/2020 76
La programmation Modulaire

Fonctions & modules


La méthode import
 Mais comment suis-je censé savoir quelles fonctions existent et ce que fait math.sqrt ou random.randint???

3/28/2020 77
La programmation Modulaire

Fonctions & modules


Utiliser un espace de noms spécifique
 En réalité, quand on tape import math, cela crée un espace de noms nommé « math », contenant les variables et
fonctions du module math. Quand vous tapez math.sqrt(), vous précisez à Python que vous souhaitez exécuter la
fonction sqrt contenue dans l'espace de noms math.
 On peut importer un module ou un objet sous un nom différent à l'aide du mot-clé as. Ceci est principalement
utilisé lorsqu'un module ou un objet a un nom long.

3/28/2020 78
La programmation Modulaire

Fonctions & modules


Méthode d'importation : from … import …
 Il existe une autre méthode d'importation qui ne fonctionne pas tout à fait de la même façon. En fonction du
résultat attendu, j'utilise indifféremment l'une ou l'autre de ces méthodes. Reprenons notre exemple du module
math. Admettons que nous ayons uniquement besoin, dans notre programme, de la fonction renvoyant la valeur
absolue d'une variable.

 Dans ce cas, nous n'allons importer que la fonction, au lieu d'importer tout le module.
Exemples:

3/28/2020 79
La programmation Modulaire

Fonctions & modules


Les bibliothèques standards & pip
 Il existe trois principaux types de modules dans Python, ceux que vous écrivez vous-même, ceux que vous
installez à partir de sources externes et ceux qui sont préinstallés avec Python.
 Le dernier type s'appelle la bibliothèque standard et contient de nombreux modules utiles. Certains modules
utiles de la bibliothèque standard incluent string, re, datetime, math, random, os, multiprocessing, subprocess,
socket, email, json, doctest, unittest, pdb, argparse et sys.

 Certains des modules de la bibliothèque standard sont écrits en Python et d’autres en C.

 La plupart sont disponibles sur toutes les plateformes, mais certaines sont spécifiques à Windows ou Unix.
3/28/2020 80
Les exceptions

Les exceptions

3/28/2020 81
Les exceptions
Qu’est ce que les exceptions
 Vous avez déjà vu des exceptions dans les parties précédentes. Ils se produisent lorsque quelque chose ne va
pas, à cause d'un code ou d'une saisie incorrecte.

 Lorsqu'une exception se produit, le programme s'arrête immédiatement.

 Donner un exemple d’exception qu’on a vu.

3/28/2020 82
Les exceptions
Les types d’exceptions
Les différentes exceptions sont soulevées pour différentes raisons.
Exceptions communes:
 ImportError: une importation échoue;
 IndexError: une liste est indexée avec un numéro en dehors de la plage;
 NameError: une variable inconnue est utilisée;
 SyntaxError: le code ne peut pas être analysé correctement;
 TypeError: une fonction est appelée sur une valeur d'un type inapproprié;
 ValueError: une fonction est appelée sur une valeur du type correct, mais avec une valeur inappropriée.

Python a d’autres plusieurs exceptions intégrées, telles que ZeroDivisionError et OSError.


3/28/2020 83
Les exceptions
Gestion des exceptions
 Pour gérer les exceptions et appeler un code lorsqu'une exception se produit, on utiliser une instruction
try / except.
 Le bloc try contient du code susceptible de générer une exception. Si cette exception se produit, le code du bloc
try cesse d'être exécuté et le code du bloc except est exécuté. Si aucune erreur ne se produit, le code du bloc
d'exception ne s'exécute pas.

Par exemple:

3/28/2020 84
Les exceptions
Gestion des exceptions

 Une instruction try peut avoir plusieurs blocs différents pour gérer différentesexceptions.
 Plusieurs exceptions peuvent également être placées dans un seul bloc à l'aide de parenthèses, pour que le bloc
gère toutes les exceptions.

3/28/2020 85
Les exceptions
Gestion des exceptions
 Une instruction except sans aucune exception spécifiée va capturer toutes les erreurs. Celles-ci doivent être
utilisées avec modération, car elles peuvent capturer des erreurs inattendues et masquer des erreurs de
programmation.

Par exemple:

3/28/2020 86
Les exceptions
L’instruction finally
 Pour assurer que le code est exécuté quelles que soient les erreurs, on peut utiliser une
instruction finally.
 L'instruction finally est placée au bas d'une instruction try / except.
 Le code dans une instruction finally s'exécute toujours après l'exécution du code dans les blocs
try et éventuellement dans les blocs except.

3/28/2020 87
Les exceptions
L’instruction finally
 Le code dans une instruction finally est même exécuté même si une exception se produit dans l'un des blocs
précédents

3/28/2020 88
Les exceptions
Assertions
 Une assertion est un contrôle d'intégrité qu’on peut activer ou désactiver lorsque on a terminé

de tester le programme.

 Une expression est testée, et si le résultat est faux, une exception est générée.

 Les assertions sont effectuées à l'aide de l'affirmation d'assert.

 L'assertion peut prendre un deuxième argument qui est transmis à AssertionError déclenchée

si l'assertion échoue.
3/28/2020 89
Les matrices

Les matrices

3/28/2020 90
Les matrices
 Création d’une matrice
• On travaille avec les modules numpy et numpy.linalg.

• Pour définir une matrice, on utilise la fonction array du module numpy.

3/28/2020 91
Les matrices
• L’attribut shape donne la taille d’une matrice : nombre de lignes,
nombre de colonnes. On peut redimensionner une matrice, sans
modifier ses termes, à l’aide de l’attribut reshape.

3/28/2020 92
Les matrices
L’accès à un terme de la matrice A se fait à l’aide de l’opération d’indexage A[i, j] où i désigne la ligne et j la ,colonne.
Attention, les indices commencent à zéro ! À l’aide d’intervalles, on peut également récupérer une partie d’une matrice
: ligne, colonne, sous-matrice.

3/28/2020 93
Les matrices
 Les fonctions zeros et ones permettent de créer des matrices remplies de 0 ou de 1.
 La fonction eye permet de créer une matrice du type In où n est un entier.
 La fonction diag permet de créer une matrice diagonale.

3/28/2020 94
Les matrices
• La fonction concatenate permet de créer des matrices par blocs en
superposant (axis=0) ou en plaçant côte à côte (axis=1) plusieurs matrices.

3/28/2020 95
Les matrices
• Pour copier un tableau, il est recommandé d’utiliser la méthode copy.

• La commande array_equal permet de tester l’égalité terme à terme de deux


tableaux de même taille.

3/28/2020 96
Les matrices
• Les fonctions amax, amin et mean du module numpy permettent
respectivement de calculer le maximum, le minimum et la moyenne des
éléments d’un tableau.

3/28/2020 97
Calcul matriciel

Calcul matriciel

3/28/2020 98
Le calcul matriciel
• Les opérations d’ajout et de multiplication par un scalaire se
font avec les opérateurs + et *.

3/28/2020 99
Le calcul matriciel
• Pour effectuer un produit matriciel (lorsque que cela est
possible), il faut employer la fonction dot.

3/28/2020 100
Le calcul matriciel
• On peut également utiliser la méthode dot qui est plus pratique pour calculer un
produit de plusieurs matrices.
• La fonction matrix_power du module numpy.linalg permet de calculer des
puissances de matrices.

3/28/2020 101
Le calcul matriciel
• La transposée d’une matrice B s’obtient avec la fonction np.transpose. L’expression B.T ou
B.transpose renvoie aussi la transposée de B.

3/28/2020 102
Le calcul matriciel
• Le déterminant, le rang et la trace d’une matrice s’obtiennent par les fonctions det, matrix_rank du
module numpy.linalg et trace du module numpy. Enfin la fonction inv du module numpy.linalg
renvoie l’inverse de la matrice si elle existe.

3/28/2020 103
Le calcul matriciel
• Pour résoudre le système linéaire AX=b lorsque la matrice est
inversible, on peut employer la fonction np.linalg.solve.

3/28/2020 104
Eléments propores d’une matrice
• La fonction poly du module numpy appliquée à une matrice carrée renvoie la liste des coefficients du
polynôme caractéristique par degré décroissant.
• La fonction eigvals du module numpy.linalg renvoie les valeurs propres d’une matrice.
• Pour obtenir en plus les vecteurs propres associés, il faut employer la fonction eig. Cette fonction
renvoie un tuple constitué de la liste des valeurs propres et d’une matrice carrée. La ième colonne de
cette matrice est un vecteur propre associé à la iième valeur propre de la liste des valeurs propres.

3/28/2020 105
Produit scalaire et produit vectoriel
• La fonction vdot permet de calculer le produit scalaire de deux vecteurs de l’espace.
• La fonction cross permet de calculer le produit vectoriel de deux vecteurs de l’espace. .

3/28/2020 106
Réalisation de tracés

Réalisation de tracés

3/28/2020 107
Réalisations de tracés
• Les fonctions présentées dans ce document permettent la réalisation de tracés. Elles nécessitent
l’import du module numpy et du module matplotlib.pyplot. De plus pour effectuer des tracés en
dimension 3, il convient d’importer la fonction Axes3d du module mpl_toolkits.mplot3d. Les
instructions nécessaires aux exemples qui suivent sont listés ci-dessous.

3/28/2020 108
Tracés de lignes brisées et options de tracés
• On donne la liste des abscisses et la liste des ordonnées puis on effectue le tracé. La
fonction axis permet de définir la fenêtre dans laquelle est contenue le graphique.
L’option equal permet d’obtenir les mêmes échelles sur les deux axes. Les tracés
relatifs à divers emplois de la fonction plot se superposent. La fonction plt.clf()
efface les tracés contenus dans la fenêtre graphique.

3/28/2020 109
Tracés de lignes brisées et options de tracés
• La fonction plot admet de nombreuses options de présentation. Le paramètre color
permet de choisir la couleur ('g' : vert, 'r' : rouge, 'b' : bleu, …). Pour définir le style
de la ligne, on utilise linestyle ('-' : ligne continue, '- -' : ligne discontinue, ' :' : ligne
pointillée, …). Si on veut marquer les points des listes, on utilise le paramètre
marker ('+', '.', 'o', 'v' donnent différents symboles).

3/28/2020 110
Exemple: tracés des fonctions
• On définit u↦ sin(u) où u appartient à [0, 3*pi ] puis on
construit la liste des ordonnées correspondantes.

3/28/2020 111
Tracés d’arcs paramétrés
• Dans le cas d’un arc paramétré du plan, on définit d’abord la liste des
valeurs données au paramètre puis on construit la liste des abscisses et
des ordonnées correspondantes. On effectue ensuite le tracé.

3/28/2020 112
Exemple 3d
• Pour tracer une surface d’équation 𝑧 = 𝑓(𝑥, 𝑦), on réalise d’abord une grille en (𝑥, 𝑦)
puis on calcule les valeurs de 𝑧 correspondant aux points de cette grille. On fait
ensuite le tracé avec la fonction plot_surface.

3/28/2020 113
Tracé de lignes de niveau
Pour tracer des courbes d’équation 𝑓(𝑥, 𝑦) = 𝑘, on fait une grille en 𝑥 et et 𝑦
sur laquelle on calcule les valeurs de 𝑓. On emploie ensuite la fonction
contour en mettant dans une liste les valeurs de 𝑘 pour lesquelles on veut
tracer la courbe d’équation 𝑓(𝑥, 𝑦) = 𝑘.

3/28/2020 114
Analyse numérique

Analyse numérique

3/28/2020 115
Analyse numérique
• La plupart des fonctions présentées dans cette section nécessitent
l’import du module numpy et de sous-modules du module scipy. Les
instructions nécessaires aux exemples suivants sont listés ci-dessous.

3/28/2020 116
Nombres complexes
• Python calcule avec les nombres complexes. Le nombre imaginaire pur 𝑖
se note 1j. Les attributs real et imag permettent d’obtenir la partie réelle
et la partie imaginaire. La fonction abs calcule le module d’un complexe.

3/28/2020 117
Résolution approchée d’équations
• Pour résoudre une équation du type 𝑓(𝑥) = 0 où 𝑓 est une fonction
d’une variable réelle, on peut utiliser la fonction fsolve du module
scipy.optimize. Il faut préciser la valeur initiale 𝑥0 de l’algorithme
employé par la fonction fsolve. Le résultat peut dépendre de cette
condition initiale.

3/28/2020 118
Résolution d’un système
• Dans le cas d’une fonction 𝑓 à valeurs vectorielles, on utilise la fonction
root. Par exemple, pour résoudre le système non linéaire.

3/28/2020 119
Calcul approché d’intégrales
• La fonction quad du module scipy.integrate permet de calculer des
valeurs approchées d’intégrales. Elle renvoie une valeur approchée de
l’intégrale ainsi qu’un majorant de l’erreur commise. Cette fonction peut
aussi s’employer avec des bornes d’intégration égales à +∞ ou −∞.

3/28/2020 120
Intégrale dépendante d’un paramètre
• La fonction integr.quad peut être employée pour la définition
d’intégrales à paramètres. Ainsi si on veut obtenir des valeurs
approchées de pour 𝑥 réel strictement positif on pourra procéder ainsi :

3/28/2020 121
Résolution approchées d’équations différentielles
• Pour résoudre une équation différentielle 𝑥′ = 𝑓(𝑥, 𝑡), on peut utiliser la fonction odeint du module
scipy.integrate. Cette fonction nécessite une liste de valeurs de 𝑡, commençant en 𝑡0, et une
condition initiale 𝑥0. La fonction renvoie des valeurs approchées (aux points contenus dans la liste
des valeurs de 𝑡 de la solution 𝑥 de l’équation différentielle qui vérifie 𝑥(𝑡0) = 𝑥0. Pour trouver des
valeurs approchées sur [0, 1] de la solution 𝑥′(𝑡) = 𝑡𝑥(𝑡) qui vérifie 𝑥(0) = 1, on peut employer le code
suivant.

3/28/2020 122
Système différentiel
• Si on veut résoudre, sur [0, 1], le système différentiel (S)
avec la condition initiale 𝑥(0) = 2, 𝑦(0) = 1 le code devient le suivant

3/28/2020 123
Polynômes

Polynômes

3/28/2020 124
Polynômes
La classe Polynomial du module numpy.polynomial.polynomial permet de travailler avec des polynômes.
• Pur créer un polynôme, il faut lister ses coefficients par ordre de degré croissant. Par exemple, pour
le polynôme 𝑋3 + 2𝑋 − 3. l’instruction à exécuter est p = Polynomial([-3, 2, 0, 1])
• On peut alors utiliser la variable p comme une fonction pour calculer, en un point quelconque, la
valeur de la fonction polynôme associée. Cette fonction peut agir également sur un tableau de
valeurs, elle calcule alors la valeur de la fonction polynôme en chacun des points indiqués.

3/28/2020 125
Polynômes
• L’attribut coef donne accès aux coefficients ordonnés par degré croissant ; ainsi
p.coef[i] correspond au coefficient du terme de degré i. La méthode degré renvoie le
degré du polynôme alors que roots calcule ses racines.

3/28/2020 126
Polynômes
• La méthode deriv renvoie un nouveau polynôme, dérivé du polynôme initial. Cette
méthode prend en argument facultatif un entier positif indiquant le nombre de
dérivations à effectuer. De la même manière la méthode integ intègre le polynôme,
elle prend un paramètre optionnel supplémentaire donnant la constante
d’intégration à utiliser, ce paramètres peut être une liste en cas d’intégration
multiple ; les constantes d’intégration non précisées sont prises égales à zéro.

3/28/2020 127
Polynômes
• Les opérateurs +, -, * permettent d’additionner, soustraire et multiplier des
polynômes. Ils fonctionnent également entre un polynôme et un scalaire.
L’opérateur ** permet d’élever un polynôme à une puissance entière positive. Enfin,
on peut composer deux polynômes (p(q) remplace l’indéterminée 𝑋 par le
polynôme q dans le polynôme p)

3/28/2020 128
Polynômes
L’opérateur / permet de diviser un polynôme par un scalaire. Pour diviser deux
polynômes il faut utiliser l’opérateur // qui renvoie le quotient ; l’opérateur % calcule
le reste.

3/28/2020 129
Probabilité

Probabilité

3/28/2020 130
Probabilité
• Les fonctions d’échantillonnage et de génération de valeurs pseudo-aléatoires sont
regroupées dans la bibliothèque numpy.random.
• L’expression randint(a, b) permet de choisir un entier au hasard dans l’intervalle ⟦𝑎, 𝑏⟦.
La fonction randint prend un troisième paramètre optionnel permettant d’effectuer
plusieurs tirages et de renvoyer les résultat sous forme de tableau ou de matrice.

3/28/2020 131
Probabilité
• La fonction random renvoie un réel compris dans l’intervalle [0, 1[. Si 𝑋 désigne la
variable aléatoire correspondant au résultat de la fonction random, alors pour tout 𝑎
et 𝑏 dans [0, 1] avec 𝑎 ⩽ 𝑏, on a 𝑃 (𝑎 ⩽ 𝑋 < 𝑏) = 𝑏 − 𝑎.
• Cette fonction accepte un paramètres optionnel permettant de réaliser plusieurs
tirages et de les renvoyer sous forme de tableau ou de matrice.

3/28/2020 132
Probabilité
• La fonction binomial permet de simuler une variable aléatoire suivant une loi
binomiale de paramètres n et p.
• Elle permet donc également de simuler une variable aléatoire suivant une loi de
Bernoulli de paramètres p en prenant simplement 𝑛 = 1. Cette fonction prend un
troisième paramètre optionnel qui correspond, comme pour les fonctions
précédentes, au nombre de valeurs à obtenir.

3/28/2020 133
Probabilité
• Les fonctions geometric et poisson fonctionnement de la
même manière pour les lois géométrique ou de Poisson.

3/28/2020 134

Vous aimerez peut-être aussi