1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| print("** Détermination de la famille de composés à l'aide d'une spectroscopie InfraRouge ** \n")
print("Famille possibles : Acide carboxylique, Cétone ou Aldéhyde, et Alcool")
def présence_du_groupe_CO(molecule) :
réponse_CO = str(input("Bande entre 1700 et 1760 cm-1 ? \n"))
return réponse_CO
def présence_du_groupe_acide(molecule) :
réponse_acide = str(input("Bande large entre 3500 et 3000 cm-1 ? \n"))
return réponse_acide
def présence_du_groupe_alcool(molecule) :
réponse_alcool = str(input("Bande assez large vers 3300 cm-1 ? \n"))
return réponse_alcool
def nomenclature(molecule) :
if famille=="indéterminée" :
print("Impossible de déterminer la nomenclature sans connaître la famille de la molécule")
else :
nomenclature=[]
r=str(input("La molécule a-t-elle des ramifications ? "))
if r=="oui" :
nb=int(input("Combien de ramifications la molécule a t-elle ? "))
for i in range (nb) :
if nb >1 :
print("Entrez les données des différentes ramifications")
p=int(input("Quelle est la position de la ramification ?"))
nomenclature.append(p)
c=int(input("Combien y a-t-il de carbone dans la ramification ?"))
if c==1 :
rami="méthyle"
elif c==2 :
rami="éthyle"
elif c==3 :
rami="propyle"
elif c==4 :
rami="butyle"
elif c==5 :
rami="pentyle"
elif c==6 :
rami="hexyle"
elif c==7 :
rami="heptyle"
elif c==8 :
rami="octyle"
nomenclature.append(rami)
else :
ramification=""
nb_C=int(input("Combien y a-t-il de carbone dans la chaine carbonée ? "))
if nb_C==1 :
préfixe="méthan"
elif nb_C==2 :
préfixe="éthan"
elif nb_C==3 :
préfixe="propan"
elif nb_C==4 :
préfixe="butan"
elif nb_C==5 :
préfixe="pentan"
elif nb_C==6 :
préfixe="hexan"
elif nb_C==7 :
préfixe="heptan"
elif nb_C==8 :
préfixe="octan"
nomenclature.append(préfixe)
if famille=="alcool" or famille=="cétone":
position=int(input("Quelle est la position du groupe caractéristique ?"))
nomenclature.append(position)
if famille=="acide carboxylique":
nomenclature.insert(0, "acide")
suffixe="oïque"
elif famille=="alcool":
suffixe="ol"
elif famille=="aldéhyde" :
suffixe="al"
elif famille=="cétone" :
suffixe="one"
nomenclature.append(suffixe)
return nomenclature
molecule=str(input("Entrez la molécule à analyser : "))
if présence_du_groupe_CO(molecule) == "oui":
if présence_du_groupe_acide(molecule)== "oui" :
print("\nLa molécule est un acide carboxylique.")
print ("\nSon groupe caractérisique est le carboxyle")
famille="acide carboxylique"
else :
print("\nSon groupe caractéristique est le carbonyle")
f=str(input("le groupe caractéristique est-il en fin de chaîne ? "))
if f=="oui" :
famille="aldéhyde"
print("\nLa molécule est un aldéhyde")
else :
famille="cétone"
print("\nLa molécule est une cétone")
elif présence_du_groupe_alcool(molecule) == "oui" :
print("\nLa molécule est un alcool.")
print("\nSon groupe caractéristique est l'hydroxyle")
famille="alcool"
else :
print("\nLa molécule", (molecule), "n'appartient pas à une des familles proposées")
famille="indéterminée"
a=str(input("\nVoulez-vous connaître la nomenclature de la molécule ? "))
if a=="oui":
b=str(input("\nAvez-vous la représentation de la molécule ? "))
if b=="oui" :
print(nomenclature(molecule))
else :
print("Impossible de déterminer la nomenclature de la molécule sans la représentation") |