0% ont trouvé ce document utile (0 vote)
104 vues20 pages

TP Python : Exercices et Corrections

Ce document présente un TP de Python pour les étudiants de M1 Master à l'Université de Kindia, comprenant divers exercices sur la manipulation de listes, le calcul de statistiques, la gestion de matrices, et la résolution d'équations. Chaque exercice est accompagné de corrections et d'exemples de code Python. Le TP vise à renforcer les compétences en programmation et en mathématiques appliquées.

Transféré par

dieynabadiba4
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)
104 vues20 pages

TP Python : Exercices et Corrections

Ce document présente un TP de Python pour les étudiants de M1 Master à l'Université de Kindia, comprenant divers exercices sur la manipulation de listes, le calcul de statistiques, la gestion de matrices, et la résolution d'équations. Chaque exercice est accompagné de corrections et d'exemples de code Python. Le TP vise à renforcer les compétences en programmation et en mathématiques appliquées.

Transféré par

dieynabadiba4
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

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))

Vous aimerez peut-être aussi