Aller au contenu

Activités V)

Activité V.01


Il est possible d'afficher le contenu d'un dictionnaire dans la console.

Tapez la ligne suivante dans la partie éditeur :

mes_fruits = {"poire": 3, "pomme": 4, "orange": 2}
Après avoir exécuté le "programme" ci-dessus, tapez mes_fruits dans la partie console. Vous devriez alors voir s'afficher le contenu (clés et valeurs) du dictionnaire.

Activité V.02


d = {"voiture": 25, "vélo": 55, "train": 20}
tr = d['vélo']
Quelle est la valeur de la variable tr après l'exécution du programme ci-dessus ? Vérifiez votre réponse à l'aide de la console.

Activité V.03


1
2
3
4
5
tab = []
d = {"voiture": 25, "vélo": 55, "train": 20}
for t in d.values():
    if t < 40 :
        tab.append(t)
Quelle est la valeur de la variable tab après l'exécution de ce programme ? Vérifiez votre réponse à l'aide de la console.

Activité V.04


1
2
3
4
5
tab = []
d = {"voiture": 25, "vélo": 55, "train": 20}
for v,t in d.items():
    if t < 40 :
        tab.append(v)
Quelle est la valeur de la variable tab après l'exécution de ce programme ? Vérifiez votre réponse à l'aide de la console.

Activité V.05


1
2
3
4
5
6
tab = [{'nom': 'toto', 'num': 2}, {'nom': 'titi', 'num': 5},  {'nom': 'tata', 'num': 4}]
tab_nom =  []

for t in tab :
    if t['num'] > 3:
        tab_nom.append(t['nom'])
Quelle est la valeur de la variable tab_nom après l'exécution de ce programme ? Vérifiez votre réponse à l'aide de la console.

Activité V.06


On utilise un tableau contenant des dictionnaires afin de stocker les notes des élèves Titi, Toto et Tutu :

[{'nom':'Titi', 'note':12}, {'nom':'Tutu', 'note':11}, {'nom':'Toto', 'note':17}]

La fonction plusHaute(tab) prend en paramètre un tableau contenant des dictionnaires (comme celui ci-dessus) et renvoie le nom de l'élève ayant obtenu la meilleure note (on partira du principe que les élèves ont tous des notes différentes).

1
2
3
4
5
6
7
8
def plusHaute(tab):
    nom = ""
    max_note = ...
    for t in ...:
        if t['note'] > ...:
            max_note = t[...]
            nom = t[...]
    return ...

Complétez la fonction plusHaute(tab).

Activité V.07


On utilise un tableau et des dictionnaires pour stocker des noms et des numéros de téléphone :

[{'nom':'Titi', 'num':987675643}, {'nom':'Tutu', 'num':424224}, {'nom':'Toto', 'num':343235365}]

La fonction numTel prend 2 paramètres :

  • un tableau de dictionnaires tab_tel contenant les noms et les numéros de téléphone (comme celui ci-dessus) ;
  • un nom ce_nom.

La fonction numTel doit renvoyer le numéro de téléphone de ce_nom si ce dernier existe. Dans le cas où ce_nom n'existe pas, la fonction numTel doit renvoyer -1

1
2
3
4
5
def numTel(ce_nom, ...):
    for ... in tab_tel:
        if ...  == t['nom']:
            return ...
    return ...

Activité V.08


On utilise un tableau contenant des dictionnaires afin de stocker les notes des élèves Titi, Toto et Tutu :

[{'nom':'Titi', 'note':12}, {'nom':'Tutu', 'note':11}, {'nom':'Toto', 'note':17}]
La fonction moyenne prend en paramètre un tableau contenant des dictionnaires (comme celui ci-dessus) et renvoie la moyenne des notes.

Écrivez la fonction moyenne.

Activité V.09


Copier le fichier eleves.txt et sauvegarder le dans le dossier "Fichiers/", à côté votre fichier Python.

Vous pouvez ouvrir ce fichier pour voir son contenu et mieux comprendre le code.

Exécuter le programme suivant.

tab_eleves = []
with open("Fichiers/eleves.txt","r",encoding="utf-8") as classe :
    for ligne in classe :
        tab_eleve = ligne.split(";")
        prenom_eleve = tab_eleve[0].strip()
        sexe_eleve = tab_eleve[1].strip()
        age_eleve = int(tab_eleve[2].strip())
        dico_eleve = {"prenom" : prenom_eleve , "sexe" : sexe_eleve , "age" : age_eleve}
        tab_eleves.append(dico_eleve)

print(tab_eleves)

Voici les explications du code.

  • Ligne 1 : on crée le tableau vide tab_eleves qui contiendra tous les dictionnaires des élèves.
  • Ligne 2 : on parcours le fichier ligne par ligne.
  • Ligne 3 : on enlève les retour chariot.
  • Ligne 4 : on découpe la découpe en se servant du caractère ";" comme repère. On range les trois parties dans le tableau tab_eleve correspondant à l'élève de la ligne du fichier qu'on étudie.
  • Ligne 5 : on stocke le premier élément du tableau dans la variable prenom_eleve après avoir épuré cette chaîne de caractère avec strip().
  • Ligne 6 : on stocke le deuxième élément du tableau dans la variable sexe_eleve après l'avoir épuré.
  • Ligne 7 : on stocke le troisième élément du tableau dans la variable age_eleve après l'avoir épuré et converti en entier.
  • Ligne 8 : on crée le dictionnaire de l'élève étudié en utilisant les clés "prenom", "sexe" et "age".
  • Ligne 9 : on ajoute ce dictionnaire au tableau initial tab_eleves.

Activité V.10


Cette activité complète le code de l'activité 09.

Que fait ce code complémentaires

tab_eleves = []
with open("Fichiers/eleves.txt","r",encoding="utf-8") as classe :
    for ligne in classe :
        tab_eleve = ligne.split(";")
        prenom_eleve = tab_eleve[0].strip()
        sexe_eleve = tab_eleve[1].strip()
        age_eleve = int(tab_eleve[2].strip())
        dico_eleve = {"prenom" : prenom_eleve , "sexe" : sexe_eleve , "age" : age_eleve}
        tab_eleves.append(dico_eleve)

L = []
for eleve in tab_eleves :
    if eleve["sexe"] == "G":
        L.append(eleve["prenom"])
print(L)
  • Modifier ce code pour récupérer la liste des élèves de 16 ans.
  • Modifier ce code pour compter le nombre d'élèves de plus de 16 ans.
  • Modifier ce code pour calculer l'âge moyen des filles.

Activité V.11


Que fait ce programme ?

tab_dico = [
            {"taille" : 170 , "masse" : 68},
            {"taille" : 164 , "masse" : 48},
            {"taille" : 172 , "masse" : 72},
            {"taille" : 180 , "masse" : 75},
            {"taille" : 155 , "masse" : 46},
            {"taille" : 169 , "masse" : 57},
            {"taille" : 172 , "masse" : 64},
            {"taille" : 183 , "masse" : 75},
            {"taille" : 170 , "masse" : 69},
            {"taille" : 176 , "masse" : 71},
            {"taille" : 176 , "masse" : 76},
            {"taille" : 165 , "masse" : 52}
            ]


with open("mesures.txt","w",encoding="utf-8") as fichier :
    fichier.write(f"Taille(cm)   Masse(kg)\n")
    fichier.write(f"----------------------\n")
    for personne in tab_dico:
        sa_taille = personne["taille"]
        sa_masse = personne["masse"]
        fichier.write(f"{sa_taille:10d} {sa_masse:12d}\n")
  • Ne pas oublier les retours à la ligne "\n".
  • Bien comprendre l'usage des formats.

Activité V.12


Copier le fichier clients.txt et sauvegarder le dans le dossier "Fichiers/", à côté votre fichier Python.

Créer un programme permettant d'analyser ces données sous forme de dictionnaires. On fera attention aux deux premières lignes.

On pourra par exemple sélectionner la liste des utilisateurs selon un critère :

  • numéro de client compris entre deux valeurs ;
  • clients d'une ville donnée ;
  • clients de nom donné.

Activité V.13


  • Choisir un championnat de votre choix : par exemple, le championnat de France de football féminin.
  • Créer un fichier championnat.txt contenant les informations suivantes de tous les participants :
    • nom
    • ville
    • nombre de points
    • ...
  • Créer un programme permettant de lire ce fichier sous forme de dictionnaire.
  • Faire des recherches sur ses données.