Vous êtes sur la page 1sur 4

015 - Problème - Dictionnaires et Listes

September 3, 2023

1 Problème
Un météorologiste souhaite améliorer l’efficacité du traitement des données qu’il utilise. Son objectif
étant de réaliser des traitements statistiques, il décide d’utiliser les structures des données du
langage Python. En imposant que tous les pays aient 12 températures mensuelles et qu’elles soient
classées dans le même ordre, le météorologiste utilise la liste mois permettant de fixer l’ordre des
températures ainsi que le nom de chaque mois, et le dictionnaire Températures. On suppose avoir
ces deux variables globales :
Temperatures = { “France” :[6, 5 … 8], …,“Australie” :[ 35,… ,30] }
Mois = [“Janvier”, … , “Décembre”]
Question 1 : Manipulation des données
Question 1.1 : Donner l’instruction permettant d’afficher en France la température du mois de
février sous la forme « France février 5 ».
Question 1.2 :Ecrire une fonction AfficheMois(mois), ayant pour paramètre le nom d’un mois, et
qui affiche pour tous les pays la température du mois comme précédemment.
Question 1.3 : Afin de pouvoir modifier ses données, le météorologiste souhaite utiliser deux
fonctions que vous implanterez en python :
a) La Fonction AjoutPays(pays, temps) qui prend comme paramètre le nom d’un pays ainsi que
la liste des températures associées à ce pays et l’ajoute au dictionnaire Temperatures. Par
exemple AjoutPays(“Bresil”,[25,….23]).
b) La Fonction ModificationPaysMois(pays, mois, val) qui prend comme paramètre d’entrée le
nom du pays, le nom du mois, la valeur de la nouvelle température. Cette fonction doit
modifier la valeur de la température du pays pour le mois indiqué. Par exemple Modifica-
tionPaysMois(“France”, “Janvier”, 08) doit modifier la valeur de la température en France
au mois de Janvier (ici 08 remplaçant la valeur 06).
Question 2 : Calcul statistique
Question 2.1 : Donner la fonction MoyennePays (pays) qui pour un pays donné en paramètre
d’entrée donne la moyenne annuelle des températures.
Question 2.2 : Donner la fonction MoyenneMois (mois) qui pour un mois donné (par exemple
Mars) donne la moyenne des températures de tous les pays.
Question 2.3 : Donner la fonction MoyenneMax() qui donne le pays dont la moyenne annuelle
des températures est la plus élevée.

1
Question 2.4 : Donner la fonction CategoriePays() qui construit un dictionnaire qui relie aux
catégories climatiques les pays associés, selon le barème suivant :
Polaire : <= 5 °c
Froid : <=10 °c
Méditerranéenne : <= 15 °c
Chaud : <=20 °c
Saharienne : > 20 °c.

[1]: # Définition des variables globales


Températures = { "France" :[6,5,8,12,18,18,22,22,19,16,10,6],"Australie" :
↪[35,30,25,20,18,16,17,18,20,21,22,30] }

Mois=['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','

[2]: #Question 1.1


print("France",Mois[1],Températures["France"][1])

France Février 5

[3]: #Question 1.2


def afficheMois(mois):
i=Mois.index(mois)
for x in Températures:
print(x,mois,Températures[x][i])

afficheMois("Avril")

France Avril 12
Australie Avril 20

[4]: # Question 1.3.a


def ajoutPays(pays,temps):
Températures[pays]=temps

ajoutPays("Maroc",[12,12,14,16,20,28,32,31,28,20,16,11])
print(Températures)

{'France': [6, 5, 8, 12, 18, 18, 22, 22, 19, 16, 10, 6], 'Australie': [35, 30,
25, 20, 18, 16, 17, 18, 20, 21, 22, 30], 'Maroc': [12, 12, 14, 16, 20, 28, 32,
31, 28, 20, 16, 11]}

[5]: # Question 1.3.b


def ModificationPaysMois(pays,mois,val):
i=Mois.index(mois)
Températures[pays][i]=val

2
ModificationPaysMois("Maroc","Avril",15)
print(Températures)

{'France': [6, 5, 8, 12, 18, 18, 22, 22, 19, 16, 10, 6], 'Australie': [35, 30,
25, 20, 18, 16, 17, 18, 20, 21, 22, 30], 'Maroc': [12, 12, 14, 15, 20, 28, 32,
31, 28, 20, 16, 11]}

[6]: # Question 2.1


def MoyennePays(pays):
return sum(Températures[pays])/12

print("La moyenne des températures de la France est :", MoyennePays("France"))


print("La moyenne des températures du Maroc est :", MoyennePays("Maroc"))

La moyenne des températures de la France est : 13.5


La moyenne des températures du Maroc est : 19.916666666666668

[7]: # Question 2.2


def MoyenneMois(mois):
s=0
i=Mois.index(mois)
for x in Températures:
s=s+Températures[x][i]
return s/len(Températures)

print("La moyenne des températures du mois Mars est :", MoyenneMois("Mars"))


print("La moyenne des températures du mois Juin est :", MoyenneMois("Juin"))

La moyenne des températures du mois Mars est : 15.666666666666666


La moyenne des températures du mois Juin est : 20.666666666666668

[8]: # Question 2.3


def MoyenneMax():
L=[]
M=[]
for x in Températures:
L.append(MoyennePays(x))
t=max(L)
for x in Températures:
if MoyennePays(x)==t:
M.append(x)
return M

MoyenneMax()

[8]: ['Australie']

[9]: # Question 2.4


def CategoriePays():

3
D={}
for x in Températures:
m=MoyennePays(x)
if m<=5:
D[x]="Polaire"
elif m<=10:
D[x]="Froid"
elif m<=15:
D[x]="Méditerranéenne"
elif m<=20:
D[x]="Chaud"
else:
D[x]="Saharienne"
return D

CategoriePays()

[9]: {'France': 'Méditerranéenne', 'Australie': 'Saharienne', 'Maroc': 'Chaud'}

Vous aimerez peut-être aussi