Bonjour à tous.
Aujourd'hui j'ai fait un programme permettant de déterminer la nomenclature d'une molécule à partir de sa représentation.
Voici le code :
Après plusieurs questions, le programme affiche ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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")
J'aimerais qu'il affiche nom de la molécule correctement sans les crochets, virgule etc. La molécule écrite correctement et tout attachée.
Après de nombreux essais, je n'y arrive pas...
Merci d'avance pour votre aide,
Cordialement
Ludovic V.
Partager