NSI:TP3

Proposition correction ( ne manque que les deux dernières fonctions )



def effectif_total(donnees):
    return len(donnees)

def somme(donnees):
    return sum(donnees)

def moyenne(donnees):
    return somme(donnees)/effectif_total(donnees)
    
def val_max(donnees):
    return max(donnees)

def val_min(donnees):
    return min(donnees)
    
def etendue(donnees):
    return val_max(donnees)-val_min(donnees)

def effectif_valeur(donnees,valeur):
    return donnees.count(valeur)
    
def frequence_valeur(donnees,valeur):
    return effectif_valeur(donnees,valeur)/effectif_total(donnees)

donnees=(
 ("Lille",
 (2.8,3.4,6.2,9.3,12.6,15.4,17.1,17.3,15.2,11,6.6,3.6),
 (52,44,49,42,54,60,62,60,60,63,69,58)),
 ("Turin",
 (1.4,3.6,8.3,12.6,17.1,20.7,23.6,22.4,18.8,13,6.9,2.9),
 (38,52,71,97,108,89,55,70,68,86,71,41)),
 ("Moscou",
 (-9.2,-8,-2.5,5.9,12.8,16.8,18.4,16.6,11.2,4.9,-1.5,-6.2),
 (43,35,33,42,49,78,89,76,63,61,57,53)),
 ("Madrid",
 (5,6.4,9.6,12.2,15.8,20.4,24,23.2,19.6,14,8.9,5.4),
 (43,44,35,45,44,28,11,11,30,51,58,50)),
 ("Alméria",
 (11.8,12.2,14.1,15.8,18.5,21.8,24.8,25.3,23.3,19.3,15.4,12.7),
 (30,22,22,24,18,9,1,2,13,31,27,29)),
 ("Berlin",
 (-0.9,0,3.9,8.6,13.5,16.8,18.6,18,14.4,10.4,4.4,1),
 (43,34,35,41,54,70,57,61,44,37,45,49))
 )
 
def ville_dans_liste(nom_ville):
    indice=0
    for ville in donnees:
        if ville[0]==nom_ville:
            return indice
        indice+=1
    return False
    
def ville_dans_liste1(nom_ville):
    # parcours par indice
    for indice in range(len(donnees)):
        if donnees[indice][0]==nom_ville:
            return indice
    return False
    
 
    

les deux dernières fonctions

def temp_moyenne(ville):
    '''
    retourne la température moyenne
    annuelle de la ville
    arrondie à 1 chiffre après la
    virgule
    : ville : str
    : return : float
    >>>temp_moyenne("Lille")
    10.0
    >>>temp_moyenne("Marseille")
    'Désolé, nous n'avons pas les données de Marseille'
    '''
    indice=ville_dans_liste(ville)
    if indice==False and ville!=donnees[0][0]:
        return "Désolé, nous n'avons pas les données de "+ville
    temperatures=donnees[indice][1]
    return round(moyenne(temperatures),1)

def cumul_precipitation(ville):
   
    indice=ville_dans_liste(ville)
    if indice==False and ville!=donnees[0][0]:
        return "Désolé, nous n'avons pas les données de "+ville
    precipitations=donnees[indice][2]
    return round(somme(precipitations),1)