Optimisation
Benjosss
-
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis débutant en python en je voudrais savoir comment réduire toutes ces lignes (si possible)..
Merci :)
Je suis débutant en python en je voudrais savoir comment réduire toutes ces lignes (si possible)..
Merci :)
price = 0
if (engine_displacement <= 50):
price =+ 5
if (engine_displacement > 50) and (engine_displacement <= 125):
price =+ 6
if (engine_displacement > 125) and (engine_displacement <= 250):
price =+ 7
if (engine_displacement > 250) and (engine_displacement <= 300):
price =+ 8
if (engine_displacement > 300) and (engine_displacement <= 450):
price =+ 9
if (engine_displacement > 450) and (engine_displacement <= 500):
price =+ 10
if (engine_displacement > 500) and (engine_displacement <= 690):
price =+ 11
if (engine_displacement > 690) and (engine_displacement <= 700):
price =+ 12
if (engine_displacement > 700) and (engine_displacement <= 800):
price =+ 13
if (engine_displacement > 800) and (engine_displacement <= 900):
price =+ 14
if (engine_displacement > 900) and (engine_displacement <= 1000):
price =+ 16
if (engine_displacement > 1000) and (engine_displacement <= 10000):
price =+ 18
print(price)
A voir également:
- Optimisation
- Optimisation pc - Accueil - Utilitaires
- Optimisation découpe panneau gratuit - Télécharger - Outils professionnels
- Optimisation windows 10 - Guide
- Clicker paladium optimisation - Forum Minecraft
- Logiciel optimisation tournée livraison - Forum iPhone
1 réponse
Bonsoir,
Comme toujours avec ce genre de chose, conteneur comme list ou tuple combiné à une simple boucle.
Dans ton code, tu aurais déjà dû utiliser des elif, et également gérer le cas où ta valeur est hors limite.
Ce qui pourrait donner par exemple :
Bon, c'est sans doute un peu compliqué si tu es totalement débutant, mais pas tant que ça.
Comme toujours avec ce genre de chose, conteneur comme list ou tuple combiné à une simple boucle.
Dans ton code, tu aurais déjà dû utiliser des elif, et également gérer le cas où ta valeur est hors limite.
Ce qui pourrait donner par exemple :
def get_price(v, min_price=0): prices = ((50, 5), (125, 6), (250, 7), (300, 8), (450, 9), (500, 10), (690, 11), (700, 12), (800, 13), (900, 14), (1_000, 16), (10_000, 16),) # Parcours du tuple de la fin vers le début for i in range(len(prices)-1, -1, -1): # Si 1er élément du tuple, on prend la valeur de min_price p_min = prices[i-1][0] if i > 0 else min_price # Oui, on peut faire ça en python =D if p_min < v <= prices[i][0]: return prices[i][1] # On lance une erreur si valeur hors plages error = f'Invalid value, got {v}, min is {min_price}, max is {prices[-1][0]}' raise ValueError(error) # On teste un peu cette jolie fonction for engine_displacement in (100_564, 564, 125, -56): print(engine_displacement, end=': ') try: print(get_price(engine_displacement)) except ValueError as er: print(er)
Bon, c'est sans doute un peu compliqué si tu es totalement débutant, mais pas tant que ça.
est suffisant, il faut juste que la liste soir triée.