# -*- coding:utf-8 -*- __projet__ = "7 - Les dictionnaires" __nom_fichier__ = "mineraux_modif" __author__ = "Christine Fay-Varnier" __date__ = "décembre 2022" # VERSION 1 (énoncé donné) # On dispose d'un dictionnaire mineraux tel que : # catalogue_mineraux[nom_mineral] = composition chimique # Exemple : # catalogue_mineraux = = {"Gypse" : "Ca-S-O-4.2-H-2-O", "Orthose" : "K-Al-Si-3-O-8", "Calcite" :"Ca-C-O-3", "Diamant" : "C"} # Les composants et les quantités sont séparés les uns des autres par un "-" def entre_dans_la_composition(catalogue_mineraux, symb): """ @param dico_mineraux: dictionnaire de minéraux avec leur composition @param symb: symbole d'un minéral @return: la liste des minéraux qui contiennent le composant chimique représenté par symb dans leur composition """ lmineraux = [] for mineral, composition in catalogue_mineraux.items(): liste_composition = composition.split("-") if symb in liste_composition: lmineraux.append(mineral) return lmineraux def ajoute_mineral(catalogue_mineraux, mineral, composition): """ @param catalogue_mineraux: @param mineral: @param composition: @return: """ catalogue_mineraux[mineral] = "-".join(composition) # VERSION 2 # On dispose d'un dictionnaire mineraux tel que : # catalogue_mineraux[nom_mineral] = composition chimique # Exemple : # catalogue_mineraux = {"Gypse" : "Ca-S-O4.2-H2-O", "Orthose" : "K-Al-Si3-O8", "Calcite" : "Ca-C-O3", "Diamant" : "C"} def entre_dans_la_composition_V2(catalogue_mineraux, symb): """ @param dico_mineraux: dictionnaire de minéraux avec leur composition @param symb: symbole d'un minéral @return: la liste des minéraux qui contiennent le composant chimique représenté par symb dans leur composition """ lmineraux = [] for mineral, composition in catalogue_mineraux.items(): liste_composition = composition.split("-") print(liste_composition) for comp in liste_composition: if comp.startswith(symb) and (len(comp) == len(symb) or comp[len(symb):].isdigit()): lmineraux.append(mineral) return lmineraux if __name__ == '__main__': catalogue_mineraux = {"Gypse": "Ca-S-O-4.2-H-2-O", "Orthose": "K-Al-Si-3-O-8", "Calcite": "Ca-C-O-3", "Diamant": "C"} print("le composant : C entre dans la composition des minéraux : ", entre_dans_la_composition(catalogue_mineraux, "C")) print("le composant : Ca entre dans la composition des minéraux : ",entre_dans_la_composition(catalogue_mineraux, "Ca")) ajoute_mineral(catalogue_mineraux, "Sylvanite", ["Ag", "Au", "Te", "4"]) print("nouveau catalogue : ", catalogue_mineraux) # Test pour la version 2 # catalogue_mineraux = {"Gypse": "Ca-S-O4.2-H2-O", "Orthose": "K-Al-Si3-O8", "Calcite": "Ca-C-O3", "Diamant": "C"} # print(entre_dans_la_composition_V2(catalogue_mineraux, "C")) # ajoute_mineral_V2(catalogue_mineraux, "Sylvanite", ["Ag", "Au", "Te4"]) # print("nouveau catalogue : ", catalogue_mineraux)