Optimisation if,elif,elif,elif, etc.
Bonsoir à tous,
Dans un programme que je réalise, j'utilise ce bloc de conditions :
Code:
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
|
if calcul<1:
solde=0
print('noir')
elif calcul<2:
solde=solde+50*l
print('bleu')
elif calcul<3:
solde=solde+100*l
print('rouge')
elif calcul<4:
solde=solde+150*l
print('orange')
elif calcul<5:
solde=solde+200*l
print('jaune')
elif calcul<6:
break
print('rose')
elif calcul<7:
solde=solde+250*l
print('bleu2')
elif calcul<8:
solde=solde+300*l
print('rouge2')
elif calcul<9:
solde=solde+350*l
print('orange2')
elif calcul<10:
solde=solde+400*l
print('jaune2')
else:
solde=solde+500*l
print('rose2') |
En résumé, j'ai toute une série de 'elif', et ce n'est pas très optimisé. J'aimerais réduire cela, j'ai donc créé un script pour faire mes essais :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
from random import*
def Realize():
calcul = randint(0,10)+0.5
if calcul<1:
solde=0
elif calcul<2:
solde=1
elif calcul<3:
solde=2
else:
solde=3
print(solde)
Realize() |
Et après avoir consulté plusieurs aides ( comme http://stackoverflow.com/questions/1...he-else-is-don ), j'ai essayé ceci :
Code:
1 2 3 4 5 6 7 8 9
|
def Optimize():
calcul=randint(0,3)
options = {'solde=1': 1, 'solde=2': 2, 'solde=3': 3}
for k in range(0,3):
if calcul==k in options:
print(options{k})
Optimize() |
Mais cela ne fonctionne pas. J'aimerais savoir quoi utiliser ou quoi faire pour optimiser mon bloc de conditions :?
Merci de m'avoir lu.