Vous êtes sur la page 1sur 4

Exercice 1 

class Date:
def __init__(self,j,m,a):
if j!=0 and j<=31 and isinstance(j, int):#verifier l'intervalle et que j est
un entier (NB: if 0<j<=31 and isinstance(j, int) ne marche pas ensemble)
self.jour=j
else:
raise Exception("erreur: jour invalide")#ajoute cette exception dans la
BaseException
if m!=0 and m<=12 and isinstance(m, int):
self.mois=m
else:
raise ("erreur : mois invalide")#meme comportement que la precedente mais
sans ajout d'exception
if isinstance(a, int):
self.annee=a
else:
raise ("erreur : année invalide")
def __repr__(self):

l=["janvier","fevrier","mars","avril","mai","juin","juillet","aout","septembre","
octobre","novembre","decembre"]
#print (self.jour," ",l[self.mois-1]," ",self.annee) #l'affichage soit
utiliser print dans la methode
forme=str(self.jour)+" "+l[self.mois-1]+" "+str(self.annee) #soit utiliser
variable str et la returner, puis utiliser print dans main.py
return forme

def __lt__(self):
print("entrer la date à comparer:")
#print("entrer le jour:")
#j=int(input())
#print("entrer le mois:")
#m=int(input())
#print("entrer l'année:")
#a=int(input())
#d2=Date(j,m,a) # soit cette méthode en decomposant les input
d2=Date(j=int(input("entrer le jour:")),m=int(input("entrer le
mois:")),a=int(input("entrer l'année:"))) # ou soit cette méthode plus courte
r=False
if d2.annee>self.annee: #1ere verification des années
r=True
elif d2.annee<self.annee:
r=False
else:
if d2.mois>self.mois:#2eme verification des mois
r=True
elif d2.mois<self.mois:
r=False
else:
if d2.jour>self.jour: #3eme verification des jours
r=True
elif d2.jour<self.jour:
r=False
else:
r=False
return r # resultat doit etre True or False selon l'enoncé de l'exercice
(Autre façon c est utiliser print)
Dans le fichier main.py

from Date import *

d1=Date(7,11,2020)
d1.__repr__()
print(d1.__repr__())
print(d1.__lt__())

exercice 2 :

class Personne:

def __init__(self,t,p,a):
self.taille=t
self.poids=p
self.age=a
def imc(self):
imc=self.poids/(self.taille**2)
return imc
def interpretation(self):
if self.imc()<=18.5:
print("insuffisance pondérale")
elif self.imc()>=30:
print("obésité")
else:
print("normal")

from Personne import *

samy=Personne(1.71,50,39)
print(round(samy.imc(),2))#arrondir à deux décimales
samy.interpretation()
Exercice 3 :

class Client:

#Définir un constructeur permettant d’initialiser tous les attributs.


def __init__(self,c,n,p,t):#Le constructeur d'initialisation de tous les attributs
self.CIN=c
self.NOM=n
self.PRENOM=p
self.TEL=t
#Définir à l’aide des propriétés les méthodes d’accès aux différents attributs de la
classe.
def getCIN(self): #Propriété CIN de l'attribut CIN
return self.CIN
def setCIN(self,c):
self.CIN=c

def getNOM(self): #Propriété NOM de l'attribut NOM


return self.NOM
def setNOM(self,n):
self.NOM=n

def getPRENOM(self): #Propriété PRENOM de l'attribut PRENOM


return self.PRENOM
def setPRENOM(self,p):
self.PRENOM=p

def getTEL(self): #Propriété TEL de l'attribut TEL


return self.TEL
def setTEL(self,t):
self.TEL=t
#Définir un constructeur permettant d’initialiser le CIN, le nom et le prénom.
def setATTRIBUTS(self,c,n,p):
self.CIN=c
self.NOM=n
self.PRENOM=p

#Définir la méthode Afficher ( ) permettant d’afficher les informations du Client en


cours.
def afficher(self):
print("CIN",self.CIN,"NOM",self.NOM,"PRENOM",self.PRENOM,"TELEPHONE",self.TEL)
from Client import *

#Créer Une classe Compte caractérisée par son solde et un code qui est incrémenté lors de
sa création ainsi que son propriétaire qui représente un client.
class Compte:
def __init__(self,n,s,proprio):
self.numero=n
self.solde=s
self.proprio=Client(proprio.CIN,proprio.NOM,proprio.PRENOM,proprio.TEL)
#self.proprio=Client(input("Taper CIN"),input("Taper NOM"),input("Taper
PRENOM"),input("Taper TEL")) #si on veut creer un proprio en parallele avec la creation
de son compte
self.nbre_comptes=0
#Définir à l’aide des propriétés les méthodes d’accès aux différents attributs de la
classe (le numéro de compte et le solde sont en lecture seule)
def getNUMERO(self): #Propriété NUMERO de l'attribut NUMERO EN LECTURE SEULE
return self.NUMERO

def getSOLDE(self): #Propriété SOLDE de l'attribut SOLDE EN LECTURE SEULE


return self.solde

#Propriété propri de l'attribut proprio EN LECTURE et ECRITURE


def getPROPRIO(self):
return self.proprio
def setPROPRIO(self,proprio):
p=Client(proprio.CIN,proprio.NOM,proprio.PRENOM,proprio.TEL)
self.proprio=p

#Définir un constructeur permettant de créer un compte en indiquant son propriétaire.


def compte(self,p):
pr=Client(p.CIN,p.NOM,p.PRENOM,p.TEL)
self.proprio=pr
self.nbre_comptes+=1
return True

#Une méthode permettant de Crediter() le compte, prenant une somme en paramètre.


def crediter(self,somme):
self.solde=self.solde+somme
return self.solde

#Une méthode permettant de Crediter() le compte, prenant une somme et un compte en


paramètres, créditant le compte et débitant le compte passé en paramètres.
def crediter(self,somme,autre_compte):
self.solde+=somme
autre_compte.solde-=somme
return True

#Une méthode permettant de Debiter() le compte, prenant une somme en paramètre


def debiter(self,somme):

Vous aimerez peut-être aussi