Outils pour utilisateurs

Outils du site


nsi:tds:sciences:reconnaitre_espece_chimique

Reconnaître une espèce chimique

Un alcane

Un alcane est une molécule composée de carbone et d'hydrogène. Le méthane, le propane, le butane sont des alcanes.

Par exemple, le butane a pour composition C4H10, soit 4 atomes carbone et 10 atomes hydrogène. En général, si $n$ est le nombre d'atomes carbone, le nombre d'atomes hydrogène est $2n+2$.

À faire : Écrire une fonction est_alcane(formule) qui pour une formule donnée sous forme de texte, par exemple "C4H10" renvoie True ou False, selon si c'est un alcane ou non.

L'usage est de ne pas écrire le 1 quand il n'y a qu'un seul atome. Par exemple "CH4" pour le méthane ou "CO2" pour le dioxyde de carbone.

Tests

Ajoutez les tests suivants à la suite de la fonction :

# tests
assert est_alcane("C") == False
assert est_alcane("C2") == False
assert est_alcane("CH4") == True
assert est_alcane("C2H6") == True
assert est_alcane("C3H8") == True
assert est_alcane("C15H32") == True
assert est_alcane("C15H62") == False
assert est_alcane("CO2") == False
assert est_alcane("CuB7C15Na3") == False
assert est_alcane("4C10H") == False

Alcool

Vous pouvez vérifier une structure plus complexe qui précise l'organisation de la molécule. Par exemple, on note les alcools sous cette forme CH3-CH2-CH2-OH pour le propanol.

À faire : écrire une fonction est_alcool(formule).

Pour aller plus loin

Découper une chaîne caractère après caractères est fastidieux et peu performant. L'informatique propose une théorie des langages qui étudie la capacité à reconnaître certains motifs. [Noam Chomsky](https://fr.wikipedia.org/wiki/Noam_Chomsky) a grandement contribué à cette théorie. Une application : les expressions régulières.

Voici un exemple pour le cas précédent :

import re # expressions régulières

def decomposeFormule(formule):
    regex = "([A-Z][a-z]*)([0-9]*)"
    return re.findall(regex, formule)

On obtient un découpage parfait même pour des formules comme "Cu12N3HB". La suite du travail en est grandement facilitée.

nsi/tds/sciences/reconnaitre_espece_chimique.txt · Dernière modification : de goupillwiki