Université de Kindia TP N◦ 1: Python M1 Master
A.U: 2025-2026 Dr. Bakary D. COULIBALY
Exercice 1
Soit un liste L = [1, 2, 5, 7,19, 12, 4]
1 Afficher la liste L et calculer sa taille à l’aide de Python.
2 A l’aide du langage python, extraire les éléments marqués en bleue.
3 A l’aide du langage python, extraire les éléments marqués en bleue et en rouge ensemble.
Exercice 2
1 Afficher un vecteur U contenant tous les entiers naturels de 1 à 100 en utilisant Python.
2 Afficher un vecteur V contenant tous les entiers naturels pairs de 0 à 100 en utilisant Python.
Exercice 3
Écrire un programme en Python qui teste le signe du produit de deux nombres a et b.
Exercice 4
Écrire programme en Python permettant de tester la parité (pair ou impair) d’un nombre donné par
l’utilisateur.
Exercice 5
Écrire un programme qui permet de calculer l’énergie mécanique.
Exercice 6
1 Écrire une fonction en Python permettant de calculer P(x), en fonction de x, sachant que :
2
P (x) = 4x x−2x+3
3 +1 . Que vaut P (0); P (1); P ( 23 )?
• Tracer la courbe de P sur un intervalle de votre choix.
2 Écrire une fonction en Python permettant de calculer le périmètre et la surface d’un rectangle
en connaissant sa largeur et longueur. On rappelle que la surface S d’un rectangle de longueur
L et de largeur l est: S = L × l et son périmètre P est: P = (L + l) × 2.
3 Écrire une fonction en Python permettant de calculer la surface d’un disque. La surface d’un
disque de rayon R est : S = π × R2 .
Exercice 7
On considère un groupe d’étudiants. Nous relevons leurs notes d’examens dans le tableau suivant:
Note xi 6 7 8 9 10 11 14 15 18
Effectif ni 3 2 4 6 9 7 4 9 2
Sans utiliser les commandes déjà prédéfinies sous en Python pour statistiques, programmer les fonc-
tions suivantes.
1 Écrire un programme Python permettant de calculer la moyenne, la variance et l’écart type de
la variable aléatoire X.
On rappelle que:
n n
1 X 1 X p
x̄ = ni xi ; Var(X) = ni x2i − x̄2 et σ = V ar(X).
N i=1 N i=1
Exercice 8
Soient les matrices suivantes:
1 2 3 0 14 10
A = −1 4 0 ; B = −11 24 7
−3 −1 −6 13 5 6
1 Saisir les matrices A et B.
2 Afficher la deuxième colonne de chacune de deux matrices.
3 Afficher la deuxième ligne de chacune des deux matrices.
4 Extraire les éléments situés à la deuxième ligne troisième colonne de A et B respectivement.
5 Calculer le déterminant de chaque matrice.
6 Calculer la transposée de chaque matrice.
7 Calculer l’inverse de chaque matrice.
8 Afficher les éléments diagonaux des matrices A et B.
9 Calculer la taille de chaque matrice.
Exercice 9
1 Simuler une matrice identité d’ordre 3 × 3.
2 Simuler une matrice aléatoire d’ordre 5 × 5.
3 Simuler une matrice d’ordre 4 × 4 dont tous les éléments sont 1.
4 Définir une matrice nulle de taille 3 × 5.
Exercice 10
Écrire un programme Python permettant de résoudre une équation du second degré de la forme
ax2 + bx + c = 0 avec a 6= 0. On tient compte de tous les scénarios possibles pour la résolution d’une
équation du second degré.
Exercice 11
Mouvement uniformément accéléré;
Écrire un programme qui demande v0 , a et t. Calculer la position x(t) = v0 t + 12 at2 et tracer x(t)
sur l’intervalle [0, 10].
Exercice 12
Diffraction par une fente simple
Calculer l’intensité de Fraunhofer : 2
sin α
I(θ) = I0
α
πa
où α = λ
sin θ. Tracer I(θ) pour θ ∈ [−0.1, 0.1].
Exercice 13
Résoudre les systèmes linéaires suivants avec deux méthodes différentes à l’aide de Python :
3x + 2y + z
=4
1 −x + 5y + 2z = −1
4x − 2y + 3z =3
3x + 2y − z + 10t = 10
−x + 3y + 2z =5
2
x − y − z + 2t = −1
= −2
8y + 3z + 7t
Exercice 14
On considère les fonctions suivantes :
f (x) = x3 + x2 − 4x + 1; g(x) = sin(x) − e−x .
1 Programmer les fonctions f et g en Python.
2 Calculer f (0), f ( 23 ); g(π) et g(2π).
3 Tracer la courbe de chacune de ces fonctions respectivement sur [−10, 6] et [− π2 , π2 ].
4 Tracer les courbes de chacune de ces fonctions f et g sur [−10, 6] sur un même graphique.
Exercice 15
Écrire une fonction qui permet de calculer les sommes suivantes :
1 S1 = nk=1 k; S2 = nk=1 (k + 1); S3 = nk=1 k1 ;
P P P
2 S4 = nk=1 log(k)
P
k+1
.
République de Guinée
Travail-Justice-Solidarité
Ministère de l’Enseignement Supérieur, de la Recherche Scientifique et de
l’innovation
Université de Kindia
BP 212
Email : rectorat@[Link]
Site : [Link]
Département de Mathématiques
Master Professionnel en Innovation et Entrepreneuriat pour l’Industrie du Futur
Correction de TP Python
Dr. COULIBALY BAKARY D
Email : bakocly@[Link] ou [Link]@[Link]
Tel : +224612936758 ou +212634445644 ou +22376078656
Année Universitaire : 2025-2026
#Correction de l'exercice 1
#Soit un liste L = [1, 2, 5, 7,19, 12, 4]
# 1) Afficher la liste L et calculer sa taille à l'aide de Python.
L=[1, 2, 5, 7, 19, 12, 7] # Saisi de L
print(L) #affichage de L
Taille= len(L)# Taille de L
print(Taille)# affichage de la taille de L
#2) A l'aide du langage python, extraire les éléments marqués en
#bleue.
#Ici on va utiliser le "break" et la boucle for car on ne veut pas
#afficher les autres elements de L à partir 19
print("Ici on va utiliser le break")
for i in L:
if i==19:
break
print(i)
#3) A l'aide du langage python, extraire les elements marques en
#bleue et en rouge ensemble.
#Ici on veut afficher tous les elements de L sauf 19
#On va utiliser ""continue""
print("Ici on va utiliser le continue")
for i in L:
if i==19:
continue
print(i)
#Correction de l'exercice 2
#1) Afficher un vecteur U contenant tous les entiers naturels de 1 à
#100 en utilisant Python.
# En utilisant range() et la boucle for
for i in range(1, 101):
print(i)
#2 Afficher un vecteur V contenant tous les entiers naturels pairs
#de 0 à 100 en utilisant Python.
print("Les nombres pairs entre 0 et 100 sont:")
for i in range(0, 101):
if i%2!=0:
continue
print(i)
#Correction de l'exercice 3
#Ecrire un programme en Python qui teste le signe du produit de deux
#nombres a et b.
#Ici on peut utiliser les fonctions
def TestProduitsigne(a, b):
if (a<0 and b>0) or (a>0 and b<0):
print("Le produit de", a, "et", b,"est négatif")
else:
print("Le produit de", a, "et", b,"est positif")
#Fin de la fonction
#Test du programme
print(TestProduitsigne(2, 3))
#Correction de l'exercice 4
#Ecrire programme en Python permettant de tester la parité (pair ou
#impair) d'un nombre donné par l'utilisateur.
def PariteNombre(n):
if n%2==0:
print("Le nombre", n, "donné par l'utilisateur est pair")
else:
print("Le nombre", n, "donné par l'utilisateur est impair")
#Fin de la fonction
#Test du programme
print(PariteNombre(34))
#Correction de l'exercice 5
#Ecrire un programme qui permet de calculer l'energie mecanique.
def EnergieMecanique(m, v,h,g):
E_Potentielle= m*g*h
E_Cinetique= (1/2)*m*v**2
E_Mecanique= E_Potentielle+E_Cinetique
return print("Energie Potentielle est:", E_Potentielle,","
"Energie Cinétique est:", E_Cinetique, "et energie Mecanique est:",
E_Mecanique)
#Fin de la fonction
#Teste du programme
m=10
v=2
h=6
g=9.81
print(EnergieMecanique(m, v,h,g))
#Correction de l'exercice 6
import math
import [Link] as plt #Installer cette commande dans le "Terminal"
#si c'est pas fait # python -m pip install matplotlib #python -m pip install
numpy
import numpy as np
#Question 1:
def P(x):
y=(4*x**3-2*x+3)/(x**3+1)
return y
print(" En 0,1 et 2/3 P vaut respectivement:", P(0), P(1), P(2/3))
#Tracer de la courbe de P
x=[Link](-5, 5, 100)
[Link](x, P(x), color="blue", label="Courbe de P", linewidth=3)
[Link]("Axe des abscisses")
[Link]("Axe des ordonnées")
[Link]("Courbe de la fonction P(x)")
[Link]()
[Link](True)
[Link]()
#Question 2: Surface et perimetre d'un rectangle
def Surface_Perimetre(L,l):
Surface= L*l
Perimetre= (L+l)*2
return print("La surface est:", Surface, "et le perimètre est:",
Perimetre)
#Fin de la fonction
#Test du Programme
L=20
l=5
print(Surface_Perimetre(L,l)) #iL fermer le graphique pour que cette fonction
#s'execute
#Question 3: Surface d'un disque
def surface_Disque(R):
S=[Link]*R**2
return print("La surface de ce disque est:", S)
#Fin de la fonction
#Teste du programme
R=6
print(surface_Disque(R))
#Correction de l'exercice 7
import math
import [Link] as plt #Installer cette commande dans le "Terminal"
si c'est pas fait
# python -m pip install matplotlib
#python -m pip install numpy
import numpy as np
#Fonction qui calcule de la moyenne
def Moyenne(x, n):
N=sum(n)
Moyenne=0
for xi, ni in zip(x,n): # On parcourt les deux listes simultanément
Moyenne= Moyenne+(1/N)*xi*ni
return Moyenne
#Fin de la fonction
#Teste de la fonction
x=[6, 7, 8, 9, 10, 11, 14, 15, 18]
n=[3, 2, 4, 6, 9, 7, 4, 9, 2]
print(Moyenne(x, n))
#Fonction pour calculer la variance et l'ecart type
def Variance_Ecrat_Type(x,n):
Variance1=0
N= sum(n)
M=Moyenne(x,n)
for xi, ni in zip(x, n):
Variance1= Variance1+ (1/N)*ni*xi**2
Variance_valeur= Variance1 - M**2
Ecart_Type= [Link](Variance_valeur)
return print("La variance et l'écart type de cette serie sont
respectivement:", Variance_valeur, "et", Ecart_Type)
#Fin de la fonction
#Teste du programme
x=[6, 7, 8, 9, 10, 11, 14, 15, 18]
n=[3, 2, 4, 6, 9, 7, 4, 9, 2]
print(Variance_Ecrat_Type(x,n))
#Correction de l'exercice 8
import math
import [Link] as plt #Installer cette commande dans le "Terminal"
si c'est pas fait
# python -m pip install matplotlib
#python -m pip install numpy
import numpy as np
import [Link] as det
#Question 1: Saisie et affichage des matrices A et B
A=[Link]([[1, 2, 3],[-1, 4, 0], [-3, -1, -6]])
B=[Link]([[0, 14, 10],[-11, 24, 7], [13, 5, 6]])
print(A)
print(B)
#Question 2: Afficher la deuxieme colonne de chacune de deux matrices.
print(A[:,1])
print(B[:,1])
#Question 3: Afficher la deuxieme ligne de chacune des deux matrices.
print(A[1,:])
print(B[1, :])
#Question 4: Extraire les elements situes à la deuxieme ligne troisieme
colonne de A et B respectivement.
print(A[1,2])
print(B[1,2])
#Question 5:Calculer le determinant de chaque matrice.
from [Link] import det
print(det(A))
print(det(B))
#Question 6:Calculer la transposée de chaque matrice.
print(A.T)
print(B.T)
#Question 6:Calculer l'inverse de chaque matrice.
from [Link] import inv
print(inv(A))
print(inv(B))
#Question 7: Afficher les elements diagonaux des matrices A et B.
from [Link] import diagonal
print(diagonal(A))
print(diagonal(B))
#Question: La taille de la matrice
print([Link](A))
print([Link](B))
#Correction de l'exercice 9
import math
import [Link] as plt #Installer cette commande dans le "Terminal"
si c'est pas fait
# python -m pip install matplotlib
#python -m pip install numpy
import numpy as np
import [Link] as det
import random #Pour simuler les variables aléatoires
##Simuler une matrice identite d'ordre 3x3.
I= [Link](3)
print(I)
#Simuler une matrice aleatoire d'ordre 5x5.
M=[Link](5,5)
print(M)
# Simuler une matrice d'ordre 4x4 dont tous les elements sont 1.
K= [Link]((4, 4))
print(K)
#Definir une matrice nulle de taille 3x5:
N=[Link]((3, 5))
print(N)
#Correction de l'exercice 10
import math
import [Link] as plt
import numpy as np
#Resolution equation du second degre
def resolution_Equation_second_degre(a,b,c):
if a==0:
return print("Erreur ce n'est pas une equation du second. La valeur de a
doit etre different de zero")
else:
delta= b**2-4*a*c
if delta>0:
print("Cette equation admet deux solutions réelles distinctes")
x1=(-[Link](delta))/(2*a)
x2=(-b+[Link](delta))/(2*a)
elif delta==0:
print("Cette equation admet une double solution réelle")
x1=(-b)/(2*a)
x2=(-b)/(2*a)
else:
print("Cette equation admet deux solutions complexes distinctes")
x1=complex(-b/(2*a), -[Link](-delta)/(2*a))
x2=complex(-b/(2*a), [Link](-delta)/(2*a))
return print(x1, x2)
#Fin de la fonction
#Teste du programme
a=0
b=7
c=1
print(resolution_Equation_second_degre(a,b,c))
a=3
b=73
c=1
print(resolution_Equation_second_degre(a,b,c))
a=3
b=1
c=9
print(resolution_Equation_second_degre(a,b,c))
#Correction de l'exercice 11
import math
import [Link] as plt #Installer cette commande dans le "Terminal"
si c'est pas fait
# python -m pip install matplotlib
#python -m pip install numpy
import numpy as np
def Mouvement_Accelere(V0, a, t):
y=V0*t+(1/2)*a*t**2
return y
t=[Link](0, 10, 200)
V0=0.2
a=3
y= Mouvement_Accelere(V0,a,t)
[Link](t, y, color="blue", label="Mouvement", linewidth=3)
[Link]("Temps")
[Link]("Trajectoire")
[Link](True)
[Link]()
[Link]()
#Correction de l'exercice 12
import math
import [Link] as plt #Installer cette commande dans le "Terminal"
si c'est pas fait
# python -m pip install matplotlib
#python -m pip install numpy
import numpy as np
def intensite_fraunhofer():
# --- 1. Définition des paramètres (Arbitraires mais réalistes) ---
I0 = 1.0 # Intensité maximale (unité arbitraire)
lam = 500e-9 # Longueur d'onde lambda = 500 nm (vert)
a = 10e-6 # Largeur de la fente a = 10 micromètres
# --- 2. Création du domaine pour thêta ---
# L'énoncé demande l'intervalle [-0.1, 0.1] radians
theta = [Link](-0.1, 0.1, 1000)
# --- 3. Calcul de alpha ---
# Formule : alpha = (pi * a / lambda) * sin(theta)
alpha = ([Link] * a / lam) * [Link](theta)
# --- 4. Calcul de l'Intensité I(theta) ---
# Formule : I = I0 * (sin(alpha) / alpha)^2
# ATTENTION : Mathématiquement, si theta = 0, alors alpha = 0.
# La division sin(0)/0 est indéfinie informatiquement (NaN),
# mais sa limite mathématique est 1.
# On initialise un tableau de zéros de la même taille que alpha
I = np.zeros_like(alpha)
# On crée un masque pour identifier les valeurs où alpha n'est pas nul
mask = (alpha != 0)
# On applique la formule partout où alpha != 0
I[mask] = I0 * ([Link](alpha[mask]) / alpha[mask])**2
# On force la valeur 1 * I0 là où alpha == 0 (le pic central)
I[~mask] = I0
# --- 5. Tracé du graphique ---
[Link](figsize=(10, 6))
[Link](theta, I, label=r'$I(\theta) = I_0 \left(\frac{\sin
\alpha}{\alpha}\right)^2$', color='blue', linewidth=2)
# Mise en forme
[Link](r"Diffraction de Fraunhofer par une fente simple ($a=10\mu m,
\lambda=500nm$)", fontsize=14)
[Link](r"Angle $\theta$ (rad)", fontsize=12)
[Link](r"Intensité relative $I(\theta)$", fontsize=12)
[Link](True, which="both", linestyle="--", alpha=0.7)
[Link](fontsize=12)
# Ajout des lignes axes 0
[Link](0, color='black', linewidth=0.8)
[Link](0, color='black', linewidth=0.8)
[Link]()
if __name__ == "__main__":
intensite_fraunhofer()
#Correction de l'exercice 13
import math
import [Link] as plt #Installer cette commande dans le "Terminal"
si c'est pas fait
# python -m pip install matplotlib
#python -m pip install numpy
import numpy as np
import [Link] as det
import random #Pour simuler les variables aléatoires
#Pour faire la resolution d'un système lineaire, on doit d'abord ecrire le
systeme sous forme matricielle (AX=b)
#avec A la matrice associée au système, b le vecteur du second membre et X les
inconnues
#Resolution du premier système:
#Ecrivons la forme matricielle de ce systeme
A=[Link]([[3, 2, 1], [-1, 5, 2], [4, -2, 3]])
b=[Link]([[4],[-1],[3]]) #Le vecteur b
print(A)
print(b)
#Méthode de resolution du système: si AX=b alors X=A^{-1}*b
#Methode 1
X= [Link](A, b)
print(X)
#Methode 2
from [Link] import inv
Y=inv(A)@b #on utilise le symbole arobase @ pour faire le produit matriciel
print(Y)
#Resolution du Deuxieme syteme
#Correction laissée au lecteur
#Correction de l'exercice 14
import math
import [Link] as plt #Installer cette commande dans le "Terminal"
si c'est pas fait
# python -m pip install matplotlib
#python -m pip install numpy
import numpy as np
import [Link] as det
#Question1:
def f(x):
y=x**3+x**2-4*x+1
return y
def g(x):
y1=[Link](x)-[Link](-x)
return y1
#Question 2:
print(f(0),f(2/3), g([Link]), g(2*[Link]))
#Question 3: Tracer des courbes
#La courbe de f sur [-10, 6]
x=[Link](-10, 6, 500)
[Link](x, f(x), label="f(x)", color="red", linewidth=4)
[Link]("x")
[Link]("f(x)")
[Link]("La courbe de la fonction f")
[Link](True)
[Link]()
[Link]()
#La courbe de g sur [-pi/2, pi/2]
x=[Link](-[Link]/2, [Link]/2, 500)
[Link](x, g(x), label="g(x)", color="red", linewidth=4)
[Link]("x")
[Link]("g(x)")
[Link]("La courbe de la fonction g")
[Link](True)
[Link]()
[Link]()
#Question 4: Tracer les courbes de chacune de ces fonctions f et g sur [10;
6] sur un m^eme graphique.
x=[Link](-10, 6, 500)
[Link](x, f(x), label="f(x)", color="red", linewidth=4)
[Link](x, g(x), label="g(x)", color="blue", linewidth=4)
[Link]("x")
[Link]("Valeurs")
[Link]("Courbes des fonctions")
[Link](True)
[Link]()
[Link]()
#Correction de l'exercice 15
import math
import [Link] as plt #Installer cette commande dans le "Terminal"
si c'est pas fait
# python -m pip install matplotlib
#python -m pip install numpy
import numpy as np
import [Link] as det
###Calcul des sommes
def somme1(n):
s=0
for k in range(1, n+1):
s=s+k
return s
#fin de la fontion
#Test du programme
print(somme1(100))
#Deuxieme somme
def somme2(n):
s=0
for k in range(1, n+1):
s=s+k+1
return s
#fin de la fontion
#Test du programme
print(somme2(100))
#Troisieme somme
def somme3(n):
s=0
for k in range(1, n+1):
s=s+1/k
return s
#fin de la fontion
#Test du programme
print(somme3(100))
#Quatrieme somme
def somme4(n):
s=0
for k in range(1, n+1):
s=s+[Link](k)/(k+1)
return s
#fin de la fontion
#Test du programme
print(somme4(100))
#On peut utiliser une seule fonction pour rgerouper ces 4 sommes
def somme(n):
s1=0
s2=0
s3=0
s4=0
for k in range(1, n+1):
s1=s1+k
s2=s2+(k+1)
s3=s3+1/k
s4=s4+[Link](k)/(k+1)
return print("Ces differentes sommes donnent respectivement:",s1,s2,
s3,s4)
#fin de la fontion
#Test du programme
print(somme(100))