Devoirs Première

Liste des fichiers Notebook

DM 4 - Première NSI - A rendre le mardi 14 janvier 2025 (Correction)

Question 1

Écrire une fonction trouver_minimum qui retourne le minimum d'une liste donnée.

# Fonction pour trouver le maximum dans une liste
def trouver_minimum(liste):
    # A compléter ...

# test
trouver_minimum([42, 17, 8, 23, 56, 34, 12, 89, 5, 31])

Question 2

Utiliser la fonction trouver_minimum pour implémenter la fonction tri_simple qui trie en remplissant une nouvelle liste vide à l'aide des instruction append et remove.

# Fonction de tri autre que par insertion et sélection (tri simple avec liste vide et append)
def tri_simple(liste):
    
    # A compléter ...

# test
tri_simple([42, 17, 8, 23, 56, 34, 12, 89, 5, 31])

Question 3

Écrire la fonction de tri par sélection et celle de tri par insertion.

# Tri par sélection
def tri_selection(liste):
    
    # A compléter ...

    
# test
tri_selection([42, 17, 8, 23, 56, 34, 12, 89, 5, 31])
# Tri par insertion
def tri_insertion(liste):
    
    # A compléter ...
    

# test
tri_insertion([42, 17, 8, 23, 56, 34, 12, 89, 5, 31])

Question 4

À partir du dictionnaire suivant :

donnees = [
    {"ville": "Paris", "superficie": 105.4, "habitants": 2148000},
    {"ville": "Marseille", "superficie": 240.62, "habitants": 870018},
    {"ville": "Lyon", "superficie": 47.87, "habitants": 522228},
    {"ville": "Toulouse", "superficie": 118.3, "habitants": 471941},
    {"ville": "Nice", "superficie": 71.92, "habitants": 342669},
    {"ville": "Nantes", "superficie": 65.19, "habitants": 303382},
    {"ville": "Strasbourg", "superficie": 78.26, "habitants": 280966},
    {"ville": "Montpellier", "superficie": 56.88, "habitants": 285121},
    {"ville": "Bordeaux", "superficie": 49.36, "habitants": 254436},
    {"ville": "Lille", "superficie": 34.83, "habitants": 233897},
    {"ville": "Rennes", "superficie": 50.39, "habitants": 217728},
    {"ville": "Reims", "superficie": 46.9, "habitants": 184076},
    {"ville": "Le Havre", "superficie": 46.95, "habitants": 169733},
    {"ville": "Saint-Étienne", "superficie": 79.97, "habitants": 173089},
    {"ville": "Toulon", "superficie": 42.84, "habitants": 176198}
]

Modifier la fonction de tri par sélection en tri_selection_dictionnaire pour trier la liste donnees par ordre alphabétique des villes.

# Modification du tri par sélection pour trier un dictionnaire
def tri_selection_dictionnaire(liste):
    
    # A compléter ...
    


# Exemple de données
donnees = [
    {"ville": "Paris", "superficie": 105.4, "habitants": 2148000},
    {"ville": "Marseille", "superficie": 240.62, "habitants": 870018},
    {"ville": "Lyon", "superficie": 47.87, "habitants": 522228},
    {"ville": "Toulouse", "superficie": 118.3, "habitants": 471941},
    {"ville": "Nice", "superficie": 71.92, "habitants": 342669},
    {"ville": "Nantes", "superficie": 65.19, "habitants": 303382},
    {"ville": "Strasbourg", "superficie": 78.26, "habitants": 280966},
    {"ville": "Montpellier", "superficie": 56.88, "habitants": 285121},
    {"ville": "Bordeaux", "superficie": 49.36, "habitants": 254436},
    {"ville": "Lille", "superficie": 34.83, "habitants": 233897},
    {"ville": "Rennes", "superficie": 50.39, "habitants": 217728},
    {"ville": "Reims", "superficie": 46.9, "habitants": 184076},
    {"ville": "Le Havre", "superficie": 46.95, "habitants": 169733},
    {"ville": "Saint-Étienne", "superficie": 79.97, "habitants": 173089},
    {"ville": "Toulon", "superficie": 42.84, "habitants": 176198}
]


# Test : Tri par ordre alphabétique des villes
tri_ville = tri_selection_dictionnaire(donnees)
print("Tri par ordre alphabétique des villes:", tri_ville)

Question 5

À partir du dictionnaire suivant :

autres_donnees = [
    {"ville": "Bordeaux", "pays": "France", "code_postal": 33000},
    {"ville": "Le Havre", "pays": "France", "code_postal": 76600},
    {"ville": "Lille", "pays": "France", "code_postal": 59000},
    {"ville": "Lyon", "pays": "France", "code_postal": 69000},
    {"ville": "Marseille", "pays": "France", "code_postal": 13000},
    {"ville": "Montpellier", "pays": "France", "code_postal": 34000},
    {"ville": "Nantes", "pays": "France", "code_postal": 44000},
    {"ville": "Nice", "pays": "France", "code_postal": 6000},
    {"ville": "Paris", "pays": "France", "code_postal": 75000},
    {"ville": "Reims", "pays": "France", "code_postal": 51100},
    {"ville": "Rennes", "pays": "France", "code_postal": 35000},
    {"ville": "Saint-Étienne", "pays": "France", "code_postal": 42000},
    {"ville": "Strasbourg", "pays": "France", "code_postal": 67000},
    {"ville": "Toulon", "pays": "France", "code_postal": 83000},
    {"ville": "Toulouse", "pays": "France", "code_postal": 31000}
]

Réaliser une jointure entre la liste existante donnees et la liste autres_donnees, en utilisant la clé commune "ville" pour fusionner les informations des deux listes dans une nouvelle liste ?

# Fonction pour joindre deux listes de dictionnaires sur une clé commune
def jointer_listes(liste1, liste2):
    
    # A compléter ...


# Autres données
autres_donnees = [
    {"ville": "Bordeaux", "pays": "France", "code_postal": 33000},
    {"ville": "Le Havre", "pays": "France", "code_postal": 76600},
    {"ville": "Lille", "pays": "France", "code_postal": 59000},
    {"ville": "Lyon", "pays": "France", "code_postal": 69000},
    {"ville": "Marseille", "pays": "France", "code_postal": 13000},
    {"ville": "Montpellier", "pays": "France", "code_postal": 34000},
    {"ville": "Nantes", "pays": "France", "code_postal": 44000},
    {"ville": "Nice", "pays": "France", "code_postal": 6000},
    {"ville": "Paris", "pays": "France", "code_postal": 75000},
    {"ville": "Reims", "pays": "France", "code_postal": 51100},
    {"ville": "Rennes", "pays": "France", "code_postal": 35000},
    {"ville": "Saint-Étienne", "pays": "France", "code_postal": 42000},
    {"ville": "Strasbourg", "pays": "France", "code_postal": 67000},
    {"ville": "Toulon", "pays": "France", "code_postal": 83000},
    {"ville": "Toulouse", "pays": "France", "code_postal": 31000}
]


# Test
donnees_jointees = jointer_listes(donnees, autres_donnees)
print("Données jointes :", donnees_jointees)