Université de Ngaoundéré University of Ngaoundere
Ecole Nationale Supérieure des Sciences National School of Agro-Industrial
Agro-Industrielles Sciences
Département de Mathématiques et Department of Mathematics and
Informatique Computer Sciences
Note de cours: Initiation au language PYTHON
(Anaconda: Jupyter et Spyder)
Écrit par:
Dr TCHOUMI (Chargé de Cours)/ Dr TANGUE (Chargé de Cours)
M. SOBGOU FOPPA Parfait
Ph.D Student in Mechanical and Production Engineering
Data Scientist
Contact: parfaitsobgou87@[Link]
+237 697-270-541/ 674-101-844
Année Académique 2023/2024
1/24
Organisation de la formation
1 Prérequis et Objectifs
2 Installation et Exploration d’Anaconda
3 Variables, Types et Opérations
4 Structures de données : Liste, String, Tuples, Dictionnaires
5 Stuctures de contrôle et de de données
6 Built-In-Functions
7 Fonction et Modules
8 Packages
9 Références Bibliographiques
2/24
Prérequis et Objectifs
Prérequis :
Disposer à apprendre une nouvelle compétence.
Objectifs :
Familiariser les étudiant(e)s au language de programmation Python ;
Initier aux calculs de base ;
Effectuer des opérations sur des listes, matrices ;
Initier aux structures de données et à la définition de fonctions.
Initier à la création de graphiques 2D, 3D.
3/24
Installation et Exploration d’Anaconda
Installation :
https ://[Link]/
https :// [Link]/download
Observation de l’interface :
Jupyter NoteBook
Spyder
4/24
Variables, Types et Opérations
Variables Strings : Opérations Affectation
"Python the best in IaaCige = "Python the best in
DataScience !" DataScience !"
type("Python the best in a = 2 # Affectation ou
DataScience !")# Strings(chaine Declaration par assignation
de caractère) b = 5.2 #
Variables int et float : Opérations Arithmétiques
2 print(a + b ) #Addition
type(2) # int : integer (entier) print(b − a) #Soustraction
5.2 print(a ∗ b ) #Multiplication
type(5.2) # float : (réelle) print(b/a) #Division normale
print(b//a) #Division entiere
print(b ∗ ∗a) #Puissance
print(b%a) #Modulo (Reste de
la division)
5/24
Variables, Types et Opérations
Opérations Concatenation Opérations Comparaisons
IaaCige1 = "Python the best in print(a <= b)
DataScience" print(a >= b)
IaaCige2 = "Field !" print(a == b)
print(IaaCige1 +’ ’+ IaaCige2 ) print(a != b)
Opérations Slicing Opérations Logiques
print(IaaCige1[0 :18]) print(False&True ) #AND
print(IaaCige1[19 :]) print(False |True ) #OR
Ecriture contractée print(FalseˆTrue ) #XOR
a = a + b égal : a += b Opérations conversion de variable
a = a - b égal : a -= b int(b) # conversion d’un float
a = a*b égal : a *= b en integer
a = a/b égal : a /= b float(a) # conversion d’un
a = a**b égal : a **= b integer en float
a = a%b égal : a %= b str(a) # conversion d’un integer
en chaine de caractère 6/24
Structures de données : Liste, String, Tuples, Dictionnaires
Les listes
liste1 = [ ] # Déclaration d’une liste (vide)
print(liste1)
type(liste2)
liste2 =[5, 4, 8, 10] # liste numérique
print(liste2)
liste3 = ["Mbouda", "Yaounde", "Douala", "Bamenda"] # liste de
chaine de caractères
print(liste3)
Opérations sur les listes
liste4 = liste2 + liste3 # création d’une liste à partir de deux listes
print(liste4)
[Link]("Ngaoundere") # Ajout d’un élément dans une liste.
print(liste3)
[Link](0,"Dschang") # insertion d’un élément à une position
précise (0)
len(liste2) # longueur de notre liste
print(liste3[0 :4 :1]) # Slicing avec un pas de 1
print(liste3[0 :4 :2]) # Slicing avec un pas de 2 7/24
Structures de données : Liste, String, Tuples, Dictionnaires
liste2 [1] = 31 # modification de élément ce trouvant à la position 1
de la liste2
del liste2 [1] ou [Link](4) # supprimer un élément de la liste
[Link]() # inversion d’une liste
[Link]() # trier une liste par ordre alphabétique
[Link](reverse = TRUE) # trier une liste par ordre anti-alphabétique
List Comprehension :
liste3 = [[i for i in range(3)] for j in range(3)]# nested list (liste de
listes)
Algorithme : list Algorithme : list comprehension
import time import time
start = [Link]() start1 = [Link]()
liste1 = [] liste2 = [i**2 for i in range(10000000)]
for i in range(10000000) : end1 = [Link]()
[Link](i**2) print(end1-start1)
end = [Link]()
print(end-start) 8/24
Structures de données : Liste, String, Tuples, Dictionnaires
Les strings
prenom = "ENSAI"
print(prenom[0], prenom[1], prenom[2], prenom[3], prenom[4] ) # Af-
fiche chaque élément de la chaine de caractères
Les tuples
tuples1 = ( ) # Déclaration de tuples : est comme une liste mais à la
seule différence que lorsqu’on la crée on ne peut pas la modifier : elle
est immutable
tuples2 = (1, 2, 3)
print(tuples2)
Tuples comprehension : tuple1 = tuple((i**2 for i in range(10)))
9/24
Structures de données : Liste, String, Tuples, Dictionnaires
Les dictionnaires
dict1 = {} # Déclaration de dictionnaire (vide)
Dans les dictionnaires nous avons des clef et des valeurs :
dict2 = {”IAA” : 53; ”CIGE ” : 48; ”MIP” : 53} # Filières parcours in-
génieur ENSAI
print(dict2)
[Link]() # values() affiche les valeurs du dictionnaire
[Link]()# keys() affiche les clefs de notre dictionnaire
dict2["IEAI"] = 45 # pour ajouter une nouvelle clef dans notre diction-
naire
[Link]()# obtenir les clef du dictionnaire
[Link]("IAA") # obtenir la valeur de la clef IAA
Exercice : créer un dictionnaire à partir de la méthode des dictionnaires
comprehension qui à pour clef une suite de nombre allant de 1 jusqu’à n
ou n est le nombre de personnes dans un groupe et pour values le nom ou
prénom des membres du groupe. Indice : fonction enumerate()
10/24
Stuctures de contrôle et de de données
Les trois stuctures de contrôle :
if, else, elif for
x = int(input("Entrez la valeur de x")) for i in range(10) :
if x > 0 : print(f"{i } Bonjour")
print(f"{x } est positif")
elif x == 0 : while
print(f"{x } est nul") x=0
else : while x < 10 :
print(f"{x } est négatif") print(x)
x+=1
if, else, elif : permet de creer des algorithmes où certaines action ne sont exécutées
lorsque certaines conditions sont vérifiées.
for : permet de construire des algorithmes itératifs i.e. qui contiennent des actions qui se
repètent autant de fois que l’on souhaite.
while : est vue comme un mélange entre if et for. elle nous permet de faire des itérations
lorsque la condition à l’entete est repectée.
11/24
Stuctures de contrôle et de de données
Example1
name = input("nom = ") # demande à l’utilisateur d’entrer son nom
if (len(name) < 5) :
print("Ugly")
else :
print("pretty")
Example2
for i in range(10) :
print("Month {0} : i am tincking".format(i+1))
print("Month {} : I accept your proposal".format(str(i+2)))
Example3
revenu = float(input("revenu =" ))
while revenu < 100000 :
print ("Cherche encore l’argent ! ! !")
revenu+=1
print(revenu)
print("Ton argent suffit")
12/24
Built-In-Functions
a = -5
abs(a) # fonction valeur absolue
b = 3.14
round(x) #fonction arrondie
print(argument) # pour afficher un résultat
Liste1 = [10, 5, 3,15, 90]
print(max(Liste1)) # pour avoir le maximum de notre liste
print(min(Liste1))# pour avoir le minimum de notre liste
print(sum(Liste1))# pour avoir la somme de notre liste
print(all(Liste1))# cette fonction nous retourne True car tous les élé-
ments de notre liste sont supérieurs à 0
print(any(Liste1))# cette fonction nous retourne True car au moins un
des éléments de notre liste n’est pas égal à 0
format() elle permet de personaliser les chaines de caractères (de leurs
rendrent dynamique).
input() # fonction qui permet l’interaction avec l’utilisateur (strings
par défaut)
13/24
Built-In-Functions
range() # nous permet de générer une séquence de nombre dans python. Elle
a trois argument range(a,b,c) : a represente la valeur initiale (modifiable, par de-
faut c’est 0) ; b represente la valeur finale(modifiable) et c represente le pas de
discrétisation (par defaut c’est 1)
enumerate() # permet d’afficher les index.
copy() # permet d’éffectuer une copie d’un objet
zip() : # zip permet d’afficher les éléments de deux listes distintes
suivant la position de chacun dans la liste. La boucle s’arret sur la liste
ayant la plus petite longueur.
Fonction open()
f = open("[Link]", "w")# création d’un fichier [Link] est le nom de
notre fichier. "w" représente le mode écriture (il y’a plusieurs autre modes)
[Link](argument) # écrire dans le fichier créer
[Link]() # pour fermer le fichier
Lecture du fichier
with open("[Link]", "r") as f :
print([Link]())
14/24
Fonction et Modules
Définition d’une fonction
def NomFonction(param1, param2, param3,...) :
intructions...
return instructionsValues
Exemple :
def fibonacci(n) :
# retourne une serie de fibonnaci dans une liste a, b = 0, 1
fib = [ ]
while a < n :
[Link](x)
a,b = b, a+b
return fib
15/24
Fonction et Modules
Module : est un fichier contenant des commandes que nous avons créé
pour un but precis. Par exemple un module peut comprend une ou plusieurs
fonctions qui executent une tache.
Exemple utilisation de module
import ModuleCreation as mc
liste = [Link](100)
liste
le dossier pycache créer à la suite de l’importation et l’utilisation du module
permet de créer les connexions entre différents module.
16/24
Packages
Il existe plusieurs Packages. Dans le cadre de cette présentation, nous inté-
résserons aux packages essentielles au calcul numérique.
import os
import glob
import math
import numpy as np
import [Link] as plt # matplotlib : Visualisation graphique,
pyplot : visualisation en 2D
import os
[Link]() # pour connaitre le nom du répètoire de travail
import glob
[Link]("*") # Pour voir tous les fichiers qui sont dans notre
repètoire(dossier) de travail.
[Link]("*.txt")# affiche tout les fichiers avec l’extension précisée
17/24
Packages
Package math
import math
[Link](a) # cosinus de a
[Link](a) # exponentiel de a
[Link](a)# factoriel de a
[Link](a)# valeur absolue de a
[Link] # valeur de pi
[Link](a, b) # a à la puissance b
Package numpy
import numpy as np
A = [Link]([1, 2, 3, 4]) # tableau à 1D : une liste
[Link] # pour vérifier la dimension d’un tableau ici c’est 1D une liste
[Link] # la forme du tableau
[Link]((3,3))# créait un tableau(matrice) avec des éléments 0
[Link]((3,5))# créait un tableau avec des éléments 1
[Link]((4, 4), 7) # créait un tableau avec l’élément spécifié ici 9
[Link](4)# pour créer une matrice d’identité
18/24
Packages
Package numpy (suite...)
[Link](a, b, c) # a : point de début et b : point de fin et c : le nombre
d’élément qu’on souhaite.
[Link](a,b, c) # c le pas de dicrétisation
Numpy indexing, slicing, subsettings
A = [Link]([[1,2,3],[4,5,6],[7,8,9]])
Indexing
A[0,0] # accès à l’élément qui est à la première ligne et première colonne
A[1,0]# accès à l’élément qui est à la deuxième ligne et première colonne
A[1,1]# accès à l’élément qui est à la deuxième ligne et deuxième colonne
Slicing
A[début : fin, début :fin] # ici on définit un indexe de début et fin pour la
ligne et la colonne
A[ :,0] # accès à tous les élément de la colonne 0
A[0, :] # accès à tous les élément de la ligne 0
19/24
Packages
subsetting
A[0 :, -2 :] # accès à la sous matrice contituée des deux dernières colonnes
A[1 :, 1 :] # accès à une sous matrice de A
A[1 :, :2] # accès à une sous matrice de A
Remplir une matrice
D = [Link]((4,4))
D[1 :3, 1 :3] = 1 # remplacer les cellules du milieux par des 1
G = [Link]((5,5))
G[ : :2, : :2] = 1 # remplir la matrice G avec la valeur 1 en sortant chaque
fois de 2.
T = [Link](0,10, [5,5]) # génère des nombres entier de 0 à 10
dans une matrice 5 ∗ 5
print(T)
[Link](0)# pour avoir la même séquence.
T[T< 5]= 10 # on remplace tous les éléments < 5 par la valeur 10
20/24
Packages
Package matplotlib et pyplot Package matplotlib et pyplot
import [Link] as plt import [Link] as plt
import numpy as np import numpy as np
def f(x) : def f(x) :
return x**2 -1 return [Link](x)
x = [Link](0, 10, 20) x = [Link](0, 10, 20)
y = f(x) y = f(x)
print(y) print(y)
[Link](x,y) [Link](x,y)
[Link]("Axes des Abscices") [Link]("Axes des Abscices")
[Link]("Axes des Ordonnées") [Link]("Axes des Ordonnées")
[Link]("Fonction x**2 - 1") [Link]("Fonction x**2 - 1")
[Link]() [Link]()
21/24
Packages
fonction f(x,y) fonction f(x,y) en 3D
def f(x,y) : def f(x,y) :
return [Link](x)-[Link](y) return [Link](x)-[Link](y)
print(f(0.5, 1)) x = [Link](0, 10, 20)
x = [Link](0.5, 10, 20) y = [Link](0, 10, 20)
y = [Link](1, 10, 20) X , Y = [Link] (x , y ) #
z = f(x,y) Tableau contenant les points (xi , yi )
print(z) Z = f (X, Y)
[Link](x,z, "o-", y,z, "-") fig = [Link] ()
[Link]() ax = [Link] ( projection ="3d")#
ax . plot_surface (X , Y , Z) ; #
22/24
Références Bibliographiques
Références... I
Eric Matthes. Python Crash Course 3rd Edition
Jaan Kiusalaas. Numerical Methods in Engineering with Python 3. The Penn-
sylvania State University
23/24
Références Bibliographiques
Mots de fin ...
Merci de votre intérêt pour ce TP !
Merci pour vos remarques et questions.
24/24