0% ont trouvé ce document utile (0 vote)
255 vues24 pages

? 60 Exercices Corrigés en Python & POO??

Transféré par

Compaoré Maxime
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)
255 vues24 pages

? 60 Exercices Corrigés en Python & POO??

Transféré par

Compaoré Maxime
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/ 24

 TICKER ALGORITHME ALGORITHME 

 

programmation Orienté Exercices corrigés sur l'algorithme, C, C++ JAVA , Algorithme, C, C#, C++, JAVA, Python, SQL,UML 50 Exercices corrigés et bien détaillés en Java

Python et POO
Home Privacy Policy Contact Us    

BASE DE DONNÉES PYTHON ALGORITHME (COURS) ALGORITHME (EXERCICES) LES FONCTIONS EN ALGORITHME C (EXERCICES) C (COURS) JAVA 

POO EN JAVA C++ POO EN C++ MINI-PROJETS LANGAGE C#

Accueil  Python  60 Exercices corrigés en Python & POO

60 Exercices corrigés en Python & POO


by Le chemin vers la programmation - septembre 17, 2021

SOCIAL PLUGIN

   

CATEGORIES

Exercice 1
Écrire un programme Python qui permet d’a!icher le message Bonjour.
Réponse

print("Bonjour")

Exercice 2
Écrire un programme Python permettant de saisir deux nombres et d'a!icher leur
produit. 
Réponse
m = float(input(" Entrer un nombre:"))
n = float(input(" Entrer un nombre:"))
p = m*n
print("le produit de",m,"et",n,"=",p)

Exercice 3
Écrire un programme Python qui permet d'échanger le contenu de deux entiers A et B
saisis par l'utilisateur. et a!icher ces entiers après l’échange.
Réponse
m = int(input(" Entrer un Entier m :"))
n = int(input(" Entrer un Entrer n :"))
:
print("Avant l'echange: m =",m,"et n =",n)
m,n = n,m
print("Apres l'echange: m =",m,"et n =",n)

Exercice 4
Écrire un un programme Python qui permet d'a!icher si un nombre entier saisi au
clavier est pair ou impair.
Réponse
N = int(input("Entrer un Entier :"))
if N%2==0 :
print(N,"est pair")
else :
print(N,"est impair")

Exercice 5
Écrire un programme Python qui permet d'a!icher le plus grand de trois entiers saisis au clavier.
Réponse

A = int(input("Entrer un Entier A :"))


B = int(input("Entrer un Entier B :"))
C = int(input("Entrer un Entier C :"))
Max = A
if B >= Max : Max = B
if C >= Max : Max = C
print("Le maximum est ",Max)

Exercice 6
Écrire un programme Python qui permet d'évaluer une note saisi au clavier (si la note est
supérieur à 10 alors il a!iche validé sinon non validé (NB : la note comprise entre 0 et 20 ).
Réponse

note = float(input("Entrer la note:"))


if note <= 20 and note >= 10 :
print("Validé ")
elif note < 10 and note >= 0 :
print("non Validé ")
else:
print("La note incorrecte !!! ")

Exercice 7
Écrire un programme Python qui demande deux nombres m et n à l’utilisateur et l’informe ensuite si
le produit de ces deux nombres est positif ou négatif. On inclut dans le programme le cas où
le produit peut être nul.
Réponse
A = float(input("Entrer un Entier A:"))
B = float(input("Entrer un Entier B:"))
if A*B < 0 :
print("Le produit de",A,"et",B,"est négatif")
elif A*B > 0:
print("Le produit de",A,"et",B,"est positif")
else :
print("Le produit de",A,"et",B,"est nul ")
:
Exercice 8

Écrire un programme Python qui permet de calculer la valeur absolue d'un entier saisi par
l'utilisateur.
Réponse
A = float(input("Entrer un nombre :"))
if A < 0 :
print("La valeur absolue de",A,"est",-A)
else :
print("La valeur absolue de",A,"est",A)

Exercice 9
Écrire un programme Python qui permet de calculer la moyenne de trois entiers saisis par
l'utilisateur.
Réponse
A = int(input("Entrer un Entier A :"))
B = int(input("Entrer un Entier B :"))
C = int(input("Entrer un Entier C :"))
Moyenne = (A+B+C)/3
print("La Moyenne est ",Moyenne)

Exercice 10
Une boutique propose à ces clients, une réduction de 15% pour les montants d’achat supérieurs à
200 dh. Écrire un programme Python permettant de saisir le prix total HT et de calculer le montant
TTC en prenant en compte la réduction et la TVA=20%.

Réponse
Prix_HT = float(input("Entrer le montant HT:"))
Prix_TTC = Prix_HT + Prix_HT*0.2
if Prix_TTC > 200 :
Prix_TTC = Prix_TTC - Prix_TTC*0.15
print("le montant TTC est: ",Prix_TTC)
else:
print("le montant TTC est: ",Prix_TTC)

Exercice 11
Le centre de photocopie facture 0,25 DH pour les 10 premières photocopies, 0,20 DH les
vingt suivantes et 0,10 DH pour plus de vingt. Ecrire un programme Python qui demande à
l’utilisateur de saisir le nombre de photocopies e!ectuées et qui a!iche la facture correspondante.
Réponse
Nb_copies = int(input("Entrer le nombre de copies :"))
if Nb_copies >20 :
prix = Nb_copies *0.10
if Nb_copies <=20 and Nb_copies > 10 : prix = Nb_copies *0.20
if Nb_copies <=10 and Nb_copies > 0 : prix = Nb_copies *0.25
print("Le prix total est: ",prix," Dh")

Exercice 12
Écrire un programme Python qui demande l'âge d'un enfant et permet d'informer de sa catégorie
sachant que les catégories sont les suivantes:
"poussin de 6 a 7 ans"
"pupille de 8 a 9 ans "
"minime de 10 a 11 ans "
" cadet après 12 ans ".
Réponse
:
age = float(input("Entrer votre age :"))
if age >=12 :
print("Vous etes cadet")
elif age >=10 and age <=11 :
print("Vous etes minime")
elif age >=8 and age <=9 :
print("Vous etes pupille")
elif age >=6 and age <=7 :
print("Vous etes poussin")
else:
print("votre age inférieur à 6 ans")

Exercice 13
Écrire un programme Python permettant d’a!icher le mois en lettre selon le numéro saisi au
clavier. ( Si l’utilisateur tape 1 le programme a!iche janvier, si 2 a!iche février , si 3 a!iche mars...
)

Réponse
mois = int(input("Entrer le Mois :"))
if mois == 1 :
print("Janvier")
elif mois == 2 :
print("février")
elif mois == 3 :
print("Mars")
elif mois == 4 :
print("Avril")
elif mois == 5 :
print("Mai")
elif mois == 6 :
print("Juin")
elif mois == 7 :
print("Juille")
elif mois == 8 :
print("Aout")
elif mois == 9 :
print("Septembre")
elif mois == 10 :
print("Octobre")
elif mois == 11 :
print("Novembre")
elif mois == 12 :
print("décembre")
else:
print("Le mois incorret !!!!")

Exercice 14
Écrire un programme Python qui permet d'a!icher le message "Bonsoir" 10 fois. Utilisant la
boucle while.
Réponse
i=1;
while i <= 10:
print("Bonsoir")
i=i+1

Exercice 15
Écrire un programme Python permettant de calculer la somme S= 1+2+3+...+ 10. Utilisant la boucle
while.
:
Réponse
i=1
S=0
while i <= 10 :
S=S+i
i=i+1
print("La somme de 1 à 10 est:",S)

Exercice 16
Écrire un programme Python permettant de calculer la somme S=1+2+3+...+ N, où N saisi par
l’utilisateur. Utilisant la boucle while.

Réponse

i=1
S=0
N = int(input("Donner un entier:"))
while i <= N :
S=S+i
i=i+1
print("La somme de 1 à ",N," est:",S)

Exercice 17
Écrire un programme Python qui permet d'a!icher le message "bonjour" 10 fois . Utilisant la
boucle for.

Réponse
for i in range(10) :
print("Bonjour")

Exercice 18
Écrire un programme Python qui permet de calculer la somme S=1+2+3+...+ 10. Utilisant la
boucle for.

Réponse

S=0
for i in range(1,11):
S=S+i
print("La somme de 1 à 10 est:",S)

Exercice 19
Écrire un programme Python qui permet de calculer la somme S=1+2+3+4+….+ N. où N saisi au
clavier par l'utilisateur.Utilisant la boucle for.

Réponse

S=0
n=int(input("Donner un entier :"))
for i in range (1,n+1):
S=S+i
print("La somme des nombres entre",1,"et",n,"=",S)
:
Exercice 20
Écrire un programme Python qui permet d'a!icher la table de multiplication de 5. Utilisant la
boucle For.

Réponse

for i in range (1,11):


print("5 *",i,"=",i*5)

Exercice 21
Écrire un programme Python qui permet d'a!icher la table de multiplication d’un entier saisie par
l’utilisateur, Utilisant la boucle for.

Réponse

n=int(input("Donner un entier :"))


for i in range (1,11):
print(n," * ",i,"=",i*n)

Exercice 22
Écrivez un programme Python, entrez deux nombres de l'utilisateur et trouvez le plus grand
diviseur commun en utilisant la boucle for.
Réponse

num1 = int(input("Saisir nombre 1 : "))


num2 = int(input("Saisir nombre 2 : "))
min = num1 if (num1 < num2) else num2

for i in range(1, min+1):


if (num1 % i == 0 and num2 % i == 0):
pgcd = i
print("PGCD de {0} et {1} = {2}".format(num1, num2, pgcd))

Exercice 23
Écrivez un programme Python pour entrer un nombre et vérifiez si le nombre est parfait ou non.
Un nombre parfait est un entier positif qui est égal à la somme de ses diviseurs positifs appropriés.
Par exemple: 6 est le premier nombre parfait
Les diviseurs appropriés de 6 sont 1, 2, 3.
Somme de ses diviseurs stricts = 1 + 2 + 3 = 6.
Par conséquent, 6 est un nombre parfait.

Réponse

num = int(input("Saisir un nombre : "))


somme = 0
for i in range(1, num):
if (num % i == 0):
somme += i

if (somme == num):
print(num, "est un nombre parfait")
else:
print(num, "n'est pas un nombre parfait")

Exercice 24
Écrivez un programme Python pour saisir un nombre et calculer sa factorielle à l'aide de la
:
boucle for.

La factorielle d'un nombre "n" est le produit de tous les entiers positifs inférieurs ou égaux à n. Il est
noté n!.
Par exemple, factorielle de 5!= 1*2*3*4*5= 120
Réponse

num = int(input("Saisir un nombre : "))


estPremier = True
for i in range(2, num // 2 + 1):
if (num % i == 0):
estPremier = False
break
if (estPremier == 1):
print(num, " est premier")
else:
print(num, " n'est pas premier")

Exercice 25
Écrivez un programme Python pour a!icher tous les nombres impairs de 1 à n en utilisant la boucle
for et while.

Réponse

n = int(input("Saisir un nombre : "))


print("les nombres impairs de 1 à {0} ".format(n))
for i in range(1, n+1):
if (i % 2 != 0):
print(i)

Exercice 26
Écrivez un programme Python pour entrer un nombre de l'utilisateur et comptez le nombre de
chi!res dans l'entier donné en utilisant une boucle.
Réponse

num = int(input("Saisir un nombre : "))


compteur = 0
while (num != 0):
compteur += 1
num //= 10
print("Nombre de chi!res : ",compteur)

Exercice 27
Écrivez un programme Python pour saisir un nombre de l'utilisateur et recherchez le premier et le
dernier chi!re d'un nombre en utilisant une boucle.
Répons
n = int(input("Saisir un nombre : "))
dernier = n % 10
premier = n
while(premier >= 10):
premier = premier //10
print("Premier chi!re = ", premier)
print("Dernier chi!re = ", dernier)

Exercice 28
:
Écrire un programme Python qui permet d'inverser les chi!res d'un entier N saisi par l'utilisateur.
par exemple N=35672 le résultat a!iché doit être 27653

Réponse
n=int(input("donner un entier : "))
r=0
while(n>0):
r = r * 10
r = r+ n%10
n = int( n/10)
print(r)
Exercice 29
Écrivez un programme Python pour saisir un nombre et calculer la somme de ses chi!res en
utilisant la boucle for.

Réponse
num = int(input("Saisir un nombre : "))
somme = 0
while (num != 0):
somme += num % 10
num = num // 10
print("Somme de chi!res = ", somme)

Exercice 30
Écrivez un programme Python pour saisir le numéro de l'utilisateur et vérifiez que le numéro est
palindrome ou non, en utilisant une boucle.
Réponse
n = int(input("Saisir un nombre : "))
num = n
inverse = 0
while(n != 0):
inverse = (inverse * 10) + (n % 10)
n //= 10
if(inverse == num):
print(num, " est palindrome.")
else:
print(num, " n'est pas palindrome.")

Exercice 31
Écrivez un programme Python pour déclarer et initialiser un tableau, puis saisissez ses éléments à
partir de l'utilisateur et a!ichez le tableau.
Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*N;
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
for i in range(N):
print(tab[i])

Exercice 32
Écrivez un programme Python pour déclarer un tableau, puis saisissez ses éléments par l'utilisateur
et a!ichez tous les éléments négatifs.

Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*N;
:
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
print("Les éléments négatifs du tableau sont : ")
for i in range(N):
if (tab[i] < 0):
print(tab[i])

Exercice 33
Écrire un programme Python pour déclarer un tableau, puis saisir ses éléments à partir de
l'utilisateur et trouver la somme des éléments du tableau
Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*N;
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
somme=0
for i in range(N):
somme = somme + tab[i]
print("Somme de tous les éléments du tableau = ",somme)

Exercice 34
Écrire un programme Python pour déclarer un tableau, puis saisir ses éléments à partir de
l'utilisateur et rechercher les éléments maximum et minimum dans le tableau.

Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*N
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
max = tab[0]
min = tab[0]
somme=0
for i in range(N):
if (tab[i] > max):
max = tab[i]
if (tab[i] < min):
min = tab[i]
print("le maximum est ",max)
print("le minimum est ",min)

Exercice 35
Écrivez un programme Python pour déclarer un tableau, puis saisissez ses éléments à partir de
l'utilisateur et recherchez l'élément le plus grand et le deuxième dans ce tableau.

Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*N
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
max1 = max2 = tab[0]
for i in range(N):
if (tab[i] > max1):
max2 = max1
max1 = tab[i]
elif (tab[i] > max2 and tab[i] < max1):
:
max2 = tab[i]
print("Premier plus grand = " , max1)
print("Deuxième plus grand =" , max2)

Exercice 36
Écrivez un programme Python pour déclarer un tableau, puis saisissez ses éléments à partir de
l'utilisateur et comptez le nombre d'éléments pairs et impairs dans ce tableau.
Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*N
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
pair = 0
impair = 0
for i in range(N):
if (tab[i] % 2 == 0):
pair+=1
else:
impair+=1
print("Total des éléments pairs: ",pair)
print("Total des éléments impairs : " ,impair)

Exercice 37
Écrivez un programme Python pour déclarer deux tableaux, puis entrez les éléments du premier
tableau de l'utilisateur et copiez tous ses éléments dans le deuxième tableau
Réponse

N = int(input("Saisir le nombre d'éléments : "))


source=[0]*N
dest=[0]*N
for i in range(N):
source[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
for i in range(N):
dest[i] = source[i]
print("Les éléments du tableau source sont : ")
for i in range(N):
print(source[i], end=", ")
print()
print("Les éléments du tableau dest sont : ")
for i in range(N):
print(dest[i])

Exercice 38
Créez un programme Python qui crée et initialise un tableau, puis insère un élément à la position
spécifiée dans ce tableau (de 0 à N-1).
Pour insérer un nouvel élément dans le tableau, déplacez les éléments de la position d'insertion
donnée vers une position vers la droite.

Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*(N+1)
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
num = int(input("Saisir un élément : "))
pos = int(input("Saisir une position : "))
:
if (pos > N + 1 or pos <= 0):
print("Position invalide! Veuillez saisir une position entre 1 et " , N)
else:
for i in range(N,-1,-1):
tab[i] = tab[i - 1]
tab[pos - 1] = num
N+=1
for i in range(N):
print(tab[i])

Exercice 39
Créez un programme Python qui crée et initialise un tableau, puis supprimez un élément de ce
tableau à la position spécifiée (de 0 à N-1).
Pour supprimer un élément du tableau, déplacez les éléments juste après la position donnée vers
une position à gauche et réduisez la taille du tableau.
Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*(N)
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
pos = int(input("Saisir la position de l'élément à supprimer : "))
if (pos > N + 1 or pos <= 0):
print("Position invalide! Veuillez saisir une position entre 1 et " , N)
else:
for i in range(pos-1, N-1):
tab[i] = tab[i + 1]

N-=1
for i in range(N):
print(tab[i])

Exercice 40
Créez un programme Python qui crée et initialise un tableau, puis trouve la fréquence de chaque
élément de ce tableau.

Réponse
N = int(input("Saisir le nombre d'éléments : "))
tab=[0]*(N)
freq=[0]*(N)
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
freq[i] = -1

for i in range(N):
cpt = 1
for j in range(N):
if((i!=j) and (tab[i]==tab[j])):
cpt+=1
freq[i] = cpt
for i in range(N):
if(freq[i] != 0):
print(tab[i] , " se produit " , freq[i] , " fois")

Exercice 41
Créez un programme Python qui crée et initialise un tableau, puis a!ichez tous les éléments uniques
de ce tableau
Idée: utiliser un tableau de fréquences
:
Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*(N)
freq=[0]*(N)
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
freq[i] = -1

for i in range(N):
cpt = 1
for j in range(N):
if((i!=j) and (tab[i]==tab[j])):
cpt+=1
freq[i] = cpt
for i in range(N):
if(freq[i] == 1):
print(tab[i] , end=" ")

Exercice 42
Créez un programme Python qui crée et initialise un tableau, puis comptez les éléments en double
dans ce tableau.
Réponse
N = int(input("Saisir le nombre d'éléments : "))
tab=[0]*(N)
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
cpt=0
for i in range(N):
for j in range(i+1,N):
if (tab[i] == tab[j]):
cpt+=1
break
print("Nombre total d'éléments en double trouvés dans le tableau = " , cpt)
Exercice 43
Créez un programme Python qui crée et initialise un tableau, puis supprimez les éléments en double
dans ce tableau.
Réponse

N = int(input("Saisir le nombre d'éléments : "))


tab=[0]*(N)
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
for i in range(N):
for j in range(i+1,N):
if (tab[i] == tab[j]):
for k in range(j,N-1):
tab[k] = tab[k + 1]
N-=1
j-=1
for i in range(N):
print(tab[i] )

Exercice 44
Créez un programme qui crée et initialise un tableau, puis inversez ce tableau sans utiliser un
tableau supplémentaire.
Réponse
:
N = int(input("Saisir le nombre d'éléments : "))
tab=[0]*(N)
for i in range(N):
tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))
indexArriere = 0
indexAvant = N - 1
while (indexArriere < indexAvant):
temp = tab[indexArriere]
tab[indexArriere] = tab[indexAvant]
tab[indexAvant] = temp
indexArriere+=1
indexAvant-=1
for i in range(N):
print(tab[i])

Exercice 45
Ecrire un programme Python qui permet de calculer la somme :

S = 1¹ +2² + 3³ +........+ n^n

*** Solution ****

S=0

n=int(input("Donner un entier :"))

for i in range (1,n+1):

S=S+i**i

print("la somme est :",S)

POO en Python

Exercice 46 : classe Rectangle


Écrire en Python une classe «Rectangle» ayant deux variables « a » et « b » et une fonction
membre « surface() » qui retournera la surface du rectangle.

Corrigé

class Rectangle:
def __init__ (self,a=0,b=0):
self.a=a
self.b=b
def surface(self):
return self.a*self.b

r1 = Rectangle ();
r2 = Rectangle (5,4);
print("la surface est:",r1.surface())
print("la surface est:",r2.surface());

Exercice 47 : classe Somme

Écrire en Python une classe « Somme » ayant deux variables « n1 » et « n2 » et une


fonction membre « som() » qui calcule la somme. Dans la méthode principale main
:
demandez à l’utilisateur d’entrez deux entiers et passez-les au constructeur par défaut
de la classe « Somme » et a!icher le résultat de l’addition des deux nombres.

Corrigé

class Somme:
def __init__(self,nbr1=0,nbr2=0):
self.n1=nbr1
self.n2=nbr2

def som(self):
return n1 + n2

n1 = int(input("Entrer N1:"))
n2 = int(input("Entrer N1:"))
obj = Somme(n1,n2);
print("Le resultat de l'addition est :",obj.som())

Exercice 48 : classe Etudiant

Écrire classe Python appelée « Etudiant » avec les membres suivant :


nom : (de type char),
note1, note2 : (de type float)
calc_moy() : calcule la note moyenne.
a!icher () : a!iche le nom et la note moyenne.
Le programme principal (main) demande à l’utilisateur d’entrer le nom et les notes d'un
étudiant. et a!iche leur nom et la note moyenne.

Corrigé
class Etudiant:
def __init__(self,nom,note1,note2):
self.nom = nom
self.note1 = note1
self.note2 = note2

def calc_moy(self):
return (self.note1 + self.note2)/2

def a!icher (self):


print("Etudiant: ",self.nom, " moyenne: ",self.calc_moy())

nom = input("Entrer le nom: ")


note1= int(input("Entrer la note 1: "))
note2= int(input("Entrer la note 2: "))
E = Etudiant (nom, note1, note2)
E.a!icher()

Exercice 49 : classe point


Réaliser en Python une classe point permettant de manipuler un point d'un plan.on
prévoira :

1) un point est définit par ses coordonnées x et y (des membres privés)

2) les constructeurs

3) une fonction membre déplace e!ectuant une translation définie par ses deux
arguments dx et dy (double)

4)une fonction membre a!iche se contentant d'a!icher les coordonnées cartésiennes du


:
point.

5)une fonction membre saisir se contentant de saisir les coordonnées cartésiennes du


point.

6)une fonction membre distance e!ectuant calculant la distance entre deux point.

7)une fonction membre milieu donnant le milieu d'un segment.

8)un petit programme d'essai (main) gérant la classe point.

Corrigé

from math import *

class Point:
def __init__(self,a=0,b=0):
self.x=a
self.y=b
def get_x(self):
return self.x
def get_y(self):
return self.y

def set_x(self,a):
self.x=a

def set_y(self, b):


self.y=b

def deplace(self,dx,dy):
self.set_x(self.get_x()+dx)
self.set_y(self.get_y()+dy)

def a!iche(self):
print("x=",self.get_x())
print("y=",self.get_y())

def saisir(self):
print("donner les coordonnées")
self.x = int(input ("x = "))
self.y = int(input ("y = "))

def distance (self,p):


x1=(self.get_x()-p.get_x())*(self.get_x()-p.get_x());
x2=(self.get_y()-p.get_y())*(self.get_y()-p.get_y());
d=sqrt(x1+x2)
return d

def milieu(self, p):


p1 = Point();
p1.x=(self.get_x()+p.get_x())/2
p1.y=(self.get_y()+p.get_y())/2
return p1

p = Point(1,1)
x = Point(5,5)
c = Point()
p.a!iche()
p.deplace(5,5)
p.a!iche();
print("la distance px est: ",p.distance(x));
c=p.milieu(x)
:
print("le milieu de [px] est: (",c.get_x(),",",c.get_y(),")")

Exercice 50 : classe Compte


Écrire un programme en Python qui simule la gestion d’un simple compte bancaire. Le
compte est créé avec un solde initial. Il est possible de déposer et de retirer des fonds,
d’ajouter des intérêts et de connaître le solde actuel. Cela devrait être implémenté dans
une classe nommée Account qui comprend:

1) Un constructeur par défaut qui met le solde initial à zéro.


2) Un constructeur qui accepte une balance initial comme paramètre.
3) Une fonction getBalance qui renvoie le solde actuel.
4) Une méthode deposer pour déposer un montant spécifié.
5) Une méthode retirer pour retirer un montant spécifié.
6) Une méthode ajouter_Interet pour ajouter de l’intérêt au compte.
La méthode ajouter_Interet prend le taux d’intérêt comme paramètre et modifie le
solde du compte en solde * (1 + taux d’intérêt).

Corrigé
class Compte:
def __init__(self,balance=0):
self.balance = balance

def getBalance(self):
return self.balance

def deposer(self,amount):
self.balance += amount

def retirer (self,amount):


self.balance -= amount

def ajouter_Interet (self,rate):


self.balance = self.balance*(1 + rate)

compte1 = Compte()
compte2 = Compte(3000)
compte1.deposer(100)
compte2.retirer(1000)
compte1.ajouter_Interet (0.3)
print(compte1.getBalance())
print(compte2.getBalance())

Exercice 51 : Classe temps


Créer en Python une classe appelée Temps, qui a des membres de type int tels que
heures, minutes et secondes.(rendez-les private)
1) Un constructeur doit initialiser ces données à 0
2) Un autre constructeur devrait l’initialiser à des valeurs fixes.
3) Une fonction membre devrait l’a!icher, au format 17h 59min 59s.
4) Une autre fonction pour renvoyer les données de chaque membre nommez-les
getheurs, getMin et getSec
5) Une fonction membre doit ajouter deux objets de type Temps passé en arguments.

Corrigé

class Temps:
def setTemps(self,h,m,s):
:
self.heures = h
self.minutes = m
self.seconds = s

def __init__ (self,h=0,m=0,s=0):


self.setTemps(h,m,s)

def getHours(self):
return self.heures
def getMin(self) :
return self.minutes
def getSec(self) :
return self.seconds

def getTemps(self):
print(self.heures,"h ",self.minutes,"min ",self.seconds,"s")

def ajouterTemps(self,t1,t2):
self.seconds= t1.seconds + t2.seconds
self.minutes = t1.minutes + t2.minutes + (int(self.seconds/60))
self.heures = t1.heures + t2.heures + (int(self.minutes/60))
self.minutes %= 60
self.seconds %= 60

t1 = Temps(4,43,59)
t2 = Temps(1,20,32)
t3 = Temps()
t1.getTemps()
t2.getTemps()
t3.ajouterTemps(t1, t2)
t3.getTemps()

Exercice 52 : Classe rectangle


Écrire en Python un programme utilisant une classe rectangle dont le constructeur prend
deux paramètres, largeur et hauteur et qui o!re les fonctions suivantes :

1) calcul du périmètre

2) calcul de la surface

3) a!ichage

ainsi que les accesseurs et mutateurs triviaux (lecture et modification de la largeur et de


la hauteur).

Corrigé

class Rectangle:
def __init__(self,L,h):
self.largeur = L
self.hauteur = h
def getLargeur(self):
return largeur
def getHauteur(self):
return hauteur
def perimetre(self) :
return 2*(self.largeur + self.hauteur)
def surface(self):
return self.largeur * self.hauteur
def setLargeur(self,newLargeur):
self.largeur = newLargeur
:
def setHauteur(self,newHauteur):
self.hauteur = newHauteur

def a!icher(self):
print("la longueur :",self.hauteur)
print("la largeur :",self.largeur)

R= Rectangle (5,4)
R.a!icher()
print("la surface est ",R.surface());
print("le perimetre est ",R.perimetre())

Exercice 53 : L'héritage
Écrivez un programme en Python qui définit une classe appelée Forme avec un
constructeur qui donne de la valeur à la largeur(x) et à la hauteur(y). Définir la méthode
aire() dans les deux sous-classes Triangle et Rectangle, qui calculent l’aire. Dans la
méthode principale main, définissez deux variables, un triangle et un rectangle, puis
appelez la fonction aire() dans ces deux variables.

Notez que:

l’aire du triangle est = largeur * hauteur / 2

l’aire du rectangle est = largeur * hauteur.

Corrigé
class Forme:
def __init__(self,x=0,y=0):
self.x = x
self.y = y

class Rectangle (Forme):


def __init__(self,x=0,y=0):
Forme.__init__(self,x,y)

def aire(self):
return (self.x * self.y)

class Triangle (Forme):


def __init__(self,x=0,y=0):
Forme.__init__(self,x,y)
def aire(self):
return (self.x * self.y / 2)

R = Rectangle (2,3)
T = Triangle (2,3)
R1 = Rectangle ()
print(R.aire())
print(T.aire())
print(R1.aire())

Exercice 54: Classe Rectangle


1) Ecrire une classe Rectangle en langage Python, permettant de construire un rectangle
dotée d'attributs longueur et largeur.
2) Créer une méthode Perimetre() permettant de calculer le périmètre du rectangle et
une méthode Surface() permettant de calculer la surface du rectangle
3) Créer les getters et setters.
4) Créer une classe fille Parallelepipede héritant de la classe Rectangle et dotée en plus
d'un attribut hauteur et d'une autre méthode Volume() permettant de calculer le volume
du Parallélépipède.
:
Réponse

#coding: utf-8
class Rectangle:
def __init__(self,longueur,largeur):
self.longueur = longueur
self.largeur = largeur

# Méthode qui calcul le périmètre


def Perimetre(self):
return 2*(self.longueur + self.largeur)

# Méthode qui calcul la surface


def Surface(self):
return self.longueur*self.largeur

class Parallelepipede(Rectangle):
def __init__(self,longueur,largeur, hauteur):
Rectangle.__init__(self,longueur,largeur)
self.hauteur = hauteur

# méthode qui calcul le volume


def Volume(self):
return self.longueur*self.largeur*self.hauteur

monRectangle = Rectangle(7, 5)
monParallelepipede = Parallelepipede(7,5,2)
print("Le périmètre de mon rectangle est : ",monRectangle.Perimetre())
print("La surface de mon rectangle est : ", monRectangle.Surface())
print("Le volume de mon parallelepipede est : ", monParallelepipede.Volume())

Exercice 55: Compte bancaire


1) Créer une classe Python nommée CompteBancaire qui représente un compte bancaire,
ayant pour attributs : numeroCompte (type numérique ) , nom (nom du propriétaire du
compte du type chaine), solde.
2) Créer un constructeur ayant comme paramètres : numeroCompte, nom, solde.
3) Créer une méthode Versement() qui gère les versements.
4) Créer une méthode Retrait() qui gère les retraits.
5) Créer une méthode Agios() permettant d'appliquer les agios à un pourcentage de 5 %
du solde
6) Créer une méthode a!icher() permettant d’a!icher les détails sur le compte
7) Donner le code complet de la classe CompteBancaire.

Réponse

#coding: utf-8
class CompteBancaire:
def __init__(self, idNumber, nomPrenom, solde):
self.idNumber = idNumber
self.nomPrenom = nomPrenom
self.solde = solde

def versement(self, argent):


self.solde = self.solde + argent

def retrait(self, argent):


if(self.solde < argent):
print(" Impossible d'e!ectuer l'opération. Solde insu!isant !")
:
else:
self.solde = self.solde - argent

def agios(self):
self.solde =self.solde*95/100

def a!icher(self):
print("Compte numéro : " , self.idNumber)
print("Nom & Prénom : ", self.nomPrenom)
print(" Solde : ", self.solde , " DH ")

monCompte = CompteBancaire(16168891, " Mohamed Rachid", 22300)


monCompte.versement(1500)
monCompte.retrait(24000)
#monCompte.agios()
monCompte.a!icher()

Exercice 56: Classe Cercle


1) Définir une classe Cercle permettant de créer un cercle C(O,r) de centre O(a,b) et de
rayon r à l'aide du constructeur :
2)Définir une méthode Surface() de la classe qui permet de calculer la surface du cercle
3)Définir une méthode Perimetre() de la classe qui permet de calculer le périmètre du
cercle
4) Définir une méthode testAppartenance() de la classe qui permet de tester si un point
A(x,y) appartient ou non au cercle C(O,r).

Réponse

#coding: utf-8
from math import *
class Cercle:
def __init__(self , a , b , r):
self.a = a
self.b = b
self.r = r

def perimetre(self):
return 2*pi*self.r

def surface(self):
return pi*self.r**2

def formEquation(self,x,y):
return (x-self.a)**2 + (y-self.b)**2 -self.r**2
def test_appartenance(self,x,y):
if(self.formEquation(x,y)==0):
print("le point : (",x,y,") appartient au cercle C")
else:
print("le point : (",x,y,") n'appartient pas au cercle C")

# Instanciation
C = Cercle(1,2,1)

print("le périmètre du cercle C est: ", C.perimetre())


print("le surface du cercle C est: ", C.surface())
C.test_appartenance(1,1)
:
Exercice 57: Calcul arithmétique
1) Créer une classe Calcul ayant un constructeur par défaut (sans paramètres)
permettant d’e!ectuer di!érents calculs sur les nombres entiers.
2) Créer au sein de la classe Calcul une méthode nommée Factorielle() qui permet de
calculer le factorielle d'un entier. Tester la méthode en faisant une instanciation sur la
classe.
3) Créer au sein de la classe Calcul une méthode nommée Somme() permettant de
calculer la somme des n premiers entiers: 1 + 2 + 3 + .. + n. Tester la méthode.
4) Créer au sein de la classe Calcul une méthode nommée testPrim() permettant de tester
la primalité d'un entier donné. Tester la méthode.
5) Créer au sein de la classe Calcul une méthode nommée testPrims() permettant de
tester si deux nombres sont premier entre eux.

6) Créer une méthode tableMult() qui crée et a!iche la table de multiplication d'un entier
donné. Créer ensuite une méthode allTablesMult() permettant d'a!icher toutes les
tables de multiplications des entiers 1, 2, 3, ..., 9.
7) Créer une méthode listDiv() qui récupère tous les diviseurs d'un entier donné sur
une liste Ldiv. Créer une autre méthode listDivPrim() qui récupère tous les diviseurs
premiers d'un entier donné.

Réponse

#coding: utf-8
class Calcul:
def __init__(self):
pass
#---Factorielle ------------
def factorielle(self, n):
j=1
for i in range(1,n+1):
j = j*i
return j
#---Somme des n premiers nombres----
def somme(self, n):
j=1
for i in range(1,n+1):
j = j+i
return j
#---Test primalité d'un nombre------------
def testPrim(self, n):
j=0
for i in range(1,n+1):
if(n%i==0):
j=j+1
if(j == 2):
return True
else:
return False

# ---Test primalité de deux nombres entiers------------


def testprims(self , n , m):
divCommun = 0
for i in range(1 , n+1):
if (n%i == 0 and m%i == 0):
divCommun = divCommun + 1
if divCommun == 1:
print("Les nombres " , n , " et ", m , " sont premiers entre eux")
else:
print("Les nombres " , n , " et ", m , " ne sont pas premiers entre eux")
:
#---Table de multiplication-------------
def tableMult(self,k):
for i in range(1,10):
print(i," x ",k," = ",i*k)

#---Toutes les tables de multiplication des nombres 1, 2, .., 9


def toutesLesTables(self):
for k in range(1,10):
print("\nla table de multiplication de : ",k, " est : ")
for i in range(1,10):
print(i," x ",k," = ",i*k)

#----- liste des diviseurs d'un entier


def listDiv(self , n):
# initialisation de la liste des diviseurs
lDiv = []
for i in range(1 , n+1):
if ( n%i == 0):
lDiv.append(i)
return lDiv

# ------liste des diviseurs premiers d'un entier----------------


def listDivPrim(self , n):
# initialisation de la liste des diviseurs
lDiv = []
for i in range(1 , n+1):
if ( n%i == 0 and self.testPrim(i)):
lDiv.append(i)
return lDiv

# Exemple Instanciation
Cal = Calcul()
Cal.testprims(13 , 7)
print("Liste des diviseurs de 18 : ", Cal.listDiv(18))
print("Liste des diviseurs premiers de 18 : ", Cal.listDivPrim(18))
Cal.toutesLesTables()

Exercice 58
Coder une classe myString permettant de doter les chaines de caractères des méthodes
append() et pop() faisant les mêmes opérations que celles des listes. Exemple si on
crée des chaines via l'instanciation s1 = myString("Hello") et s2 = "bonjour", et on lui
applique les méthodes :
print(s1.append(" world !")) # a!iche 'Hello world !'
print(s2.pop(2)) # a!iche 'bojour'.

Réponse

class myString:
def __init__(self,s):
self.s = s
def append(self,x):
self.s = self.s + x
return self.s

def pop(self,i):
s1 = self.s[0:i]
s2 = self.s[i+1:len(self.s)]
return s1+s2
def modifier(self,i):
:
pass

# Tester la classe
S = myString("hello")
print(S.pop(1)) # a!iche 'hllo'
print(S.append(" world !")) # a!iche 'hello world !'

Exercice 59
1. Définir une classe Book avec les attributs suivants : Titre, Auteur (Nom complet), Prix.
2. Définir un constructeur ayant comme attributs: Titre, Auteur, Prix.
3. Définir la méthode View() pour a!icher les informations d'une instance object Book.
4. Ecrire un programme pour tester la classe Book.

Réponse

#coding: utf-8
# Question 1
class Book:
# Question 2
def __init__(self , Title , Author , Price):
self.Title = Title
self.Author = Author
self.Price = Price

# Question 3
def view(self ):
return ("Book Title: " , self.Title , "Book Author: " , self.Author, "Book Price: "
, self.Price)

# Question 4
MyBook = Book("Python" , "Mohamed" , "23 Dh")
print( MyBook.view())

Exercise 60: Classe Geometry


Ecrire une classe Python nommée Geometry avec un constructeur par défaut sans
paramètres.
1) Ajouter une méthode nommée distance() à la classe geometry qui permet de calculer
la distance entre deux points
A = (a1, a2), B = (b1, b2) (avec la convention: un point est est identifié à ses
coordonnées M = (xM , yM) )
2) Ajouter une méthode nommée middle() à la classe geometry qui permet de
déterminer le milieu d'un bipoint (A , B).
3) Ajouter une méthode nommée trianglePerimeter() à la classe geometry qui permet
de calculer le périmètre d'un triangle ABC.
4) Ajouter une méthode nommée triangleIsoscel() qui renvoie True si le triangle est
isoscel et False sinon.
:
Tags Ecrire un programme en python exercices corrigés en python programmez en python Python

 Facebook  Twitter    

CES POSTS POURRAIENT VOUS INTÉRESSER

ECRIRE UN PROGRAMME EN PYTHON

60 Exercices corrigés en
Python & POO
September 17, 2021

ENREGISTRER UN COMMENTAIRE

0 Commentaires

Pour laisser un commentaire, cliquez sur le bouton ci-dessous afin de vous connecter avec Google.

SE CONNECTER AVEC GOOGLE

Copyright © 2024 Coode Maroc Home Privacy Policy Contact Us


:

Vous aimerez peut-être aussi