? 60 Exercices Corrigés en Python & POO??
? 60 Exercices Corrigés en Python & POO??
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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-=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
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
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=0
S=S+i**i
POO en Python
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());
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())
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
2) les constructeurs
3) une fonction membre déplace e!ectuant une translation définie par ses deux
arguments dx et dy (double)
6)une fonction membre distance e!ectuant calculant la distance entre deux point.
Corrigé
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 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 = "))
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(),")")
Corrigé
class Compte:
def __init__(self,balance=0):
self.balance = balance
def getBalance(self):
return self.balance
def deposer(self,amount):
self.balance += amount
compte1 = Compte()
compte2 = Compte(3000)
compte1.deposer(100)
compte2.retirer(1000)
compte1.ajouter_Interet (0.3)
print(compte1.getBalance())
print(compte2.getBalance())
Corrigé
class Temps:
def setTemps(self,h,m,s):
:
self.heures = h
self.minutes = m
self.seconds = 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()
1) calcul du périmètre
2) calcul de la surface
3) a!ichage
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:
Corrigé
class Forme:
def __init__(self,x=0,y=0):
self.x = x
self.y = y
def aire(self):
return (self.x * self.y)
R = Rectangle (2,3)
T = Triangle (2,3)
R1 = Rectangle ()
print(R.aire())
print(T.aire())
print(R1.aire())
#coding: utf-8
class Rectangle:
def __init__(self,longueur,largeur):
self.longueur = longueur
self.largeur = largeur
class Parallelepipede(Rectangle):
def __init__(self,longueur,largeur, hauteur):
Rectangle.__init__(self,longueur,largeur)
self.hauteur = 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())
Réponse
#coding: utf-8
class CompteBancaire:
def __init__(self, idNumber, nomPrenom, solde):
self.idNumber = idNumber
self.nomPrenom = nomPrenom
self.solde = solde
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 ")
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)
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
# 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())
Facebook Twitter
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.