Problème¶

Partrie I¶

Question 1¶

In [ ]:
#Question1
def SaisieLogiciel():
    d={}
    while True:
        des=input('designation DE Max 20 cara')
        if len des<=20:
            # d['designation']=des
            break
    d['Designation']=des

    while True:
        lic=input('licence L ou ...')
        if lic.lower() in 'lcp' and len(lic)==1:
        # if lic.lower() in {'l','c','p'}:
            break
    d['Licence']=lic

    d['Editeur']=input('donner editeur')
    
    # d['AnneeEdition']=int(input('donner annee edition'))
    while True:
        annee_str=input('donner annee edition')
        if annee_str.isdigit():break
    d['AnneeEdition']=int(annee_str)
    
    d['Version']=input('donner version')
    d['TailleDisque']=int(input('donner taille disque'))
    return d

Question 2¶

In [ ]:
#Question2
def AjoutLogiciel(L,X):
    L.append(X)

Question 3¶

In [ ]:
#Question3- 1ere methode
def ListLogicielParEditeur(L,e):
    LE=[]
    for logi in L:
        if logi['Editeur']==e:LE.append(logi)
    return tuple(LE)
In [ ]:
#Question3- 2eme methode
def ListLogicielParEditeur(L,e):
    return tuple([logi for logi in L if logi['Editeur']==e])

Question 4¶

In [ ]:
#Question 4- 1ere methode
def EspaceTotalOccupe(L):
    s=0
    for logi in L:
        s+=logi['TailleDisque']
    return s
In [ ]:
#Question 4- 2eme methode
def EspaceTotalOccupe(L):
    return sum([logi['TailleDisque'] for logi in L])

Question 5¶

5- RechercheLogiciel:Une fonction qui prend en parametre une list de logiciels L et permet de retourner le rang d'un logiciel dans la listL connaissant sa designation d donee en parametre. si le logiciel n esxist pas on retourne -1

In [ ]:
#Question 5- 1ere meethod
def RecherchLogiciel(L,d):
    for i in range(len(L)):
        if L[i]['Designation']==d:
            return i
    return -1
In [ ]:
#Question 5- 2eme method
def RecherchLogiciel(L,d):
    for logi in L:
        if logi['Designation']==d:
            return L.index(logi)
    return -1

Question 6¶

In [ ]:
#Question6- 1ere method
def NombreLogicielCommercial(L):
    n=0
    for e in L:
        if e['Licence'].lower()=='c':n+=1
    return n
In [ ]:
#Question6- 2eme method
def NombreLogicielCommercial(L):
    # return [e for e in L if e['Licence'] in 'cC' ]
    return len(['x' for e in L if e['Licence'].lower()=='c' ])

Partrie II¶

Question 7¶

In [ ]:
#Question7
def EspaceOccupe(O):
    return EspaceTotalOccupe(O['LogInst']) 
    # return EspaceTotalOccupe(O.get('LogInst')) 

Question 8¶

In [ ]:
#Question8

def InstallerLogiciel(O,x)
    espaceLibre=O['CapaciteDisque']-EspaceOccupe(O)
    if espaceLibre>=x['tailleDisque']:
        AjoutLogiciel(O['LogInst'],x)
        # O['LogInst'].append(x)

Question 9¶

In [ ]:
# Question 9- 1ere methode
def DesinstallerLogiciel(O,d):
    i=RecherchLogiciel(O['LogInst'],d)
    if i!=-1:
        O['LogInst'].popo(i)
In [ ]:
# Question 9- 2eme methode
def DesinstallerLogiciel(O,d):
    l=[]
    for logiciel in O['LogInst']:
        # if logiciel['designation']==d:continue
        if logiciel['designation']!=d:
            l.append(logiciel)
    O['LogInst']=l

Question 10¶

In [ ]:
def videOrdinateur(O):
    O['logInst']=[]
    # l.clear()