Bonjour à toutes et tous,
Malgré deux journées de recherche intensive et de tentatives de bidouillage, je m'en remets à vos conseils.
Dans un script me permettant de réaliser des calculs complexes en peu de temps, j'ai créer, dans une class appelée isotop, une listes par isotope radioactif avec à l'intérieur de la liste des valeurs nécessaire à les calculs.
Pour sélectionner un isotope, j'ai créé une liste avec le nom des isotopes afin de renseigner une combobox qui me retourne la sélection de l'utilisateur en chaine str.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 fluor18=[3.52e18,6588,0,511,0,0,1.94,0,0] chlore38=[4.92e18,22320,1.642,2.168,0,0.33,0.44,0] scandium46=[1,25e15,7240320,0.889,1.121,0,1,1,0] scandium48=[5.53e16,157248,0.984,1.038,1.312,1,0.98,1] cobalt60=[4.18e13,166194720,1.173,1.333,0,1,1,0] iridium192=[3.41e14,6376320,0.317,0.468,0.604,0.83,0.48,0.08] thallium204=[1.71e13,119206080,0.069,0,0,1,0,0] cesium137=[3.20e12,949233600,0.032,0.036,0.662,0.06,0.01,0.85] iode131=[4.61e15,691200,0.284,0.365,0.637,0.06,0.82,0.07] strontium85=[8.75e14,5607360,0.013,0.015,0.514,0.5,0.08,0.99] lutetium177m=[1.69e14,13858560,0.328,0.379,0.419,0.18,0.28,0.20]
Code : Sélectionner tout - Visualiser dans une fenêtre à part isotopes=["fluor18","Chlore38","Scandium46","Scandium48","Cobalt 60","Iridium 192","Thallium 204","Cesium 137","Iode 131","Strontium 85","Lutétium 177m"]Suite à cette sélection en string, je me tape une multitude de if et elif pour sélectionner les valeurs contenue dans la liste correspondante à l'isotope.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 selection_isotope_ded1m = StringVar() selection_isotope_ded1m.set("...") Combobox(page_ded1m,values=isotop.isotopes,textvariable=selection_isotope_ded1m).grid(row=1,column=0)
Afin d'arrêter de coder des elif à chaque fois que je rajoute un isotope, je souhaiterai "appeler directement" le contenu de la liste via la chaine string de la combobox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 if str_selection_isotope_ded1m == isotop.isotopes[0]: e1=isotop.fluor18[2] e2=isotop.fluor18[3] e3=isotop.fluor18[4] q1=isotop.fluor18[5] q2=isotop.fluor18[6] q3=isotop.fluor18[7] affichage_calcul()
Du style ...
Bien sûr, le dernier code ne fonctionne pas sinon je ne serai pas là..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 str_selection_isotope_ded1m e1=isotop.str_selection_isotope_ded1m[2] e2=isotop.str_selection_isotope_ded1m[3] e3=isotop.str_selection_isotope_ded1m[4] q1=isotop.str_selection_isotope_ded1m[5] q2=isotop.str_selection_isotope_ded1m[6] q3=isotop.str_selection_isotope_ded1m[7] affichage_calcul()
J'ai naturellement essayé de contourner le souci avec index() mais je n'ai pas réussi et surtout je suis persuadé qu'une syntaxe simple doit exister...
Dans l'espoir d'avoir été clair et que vous ayez une solution à l'optimisation de mon code.
Je vous remercie.
Partager