Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / groupe de condition

groupe de condition

Remonter à Forum général Python

groupe de condition

Envoyé par bilaiz le 17 Janvier 2014 à 23:55

salut salut, j'ai une petite question. Est-ce que l'un d'entre vous sait si il y a moyen de concaténer diverse 'if' sous un nom pour ensuite le réutiliser plus tard? 
du genre:

rand_liste_3orientation = (les if du dessous)
        if rand_liste_3orientation_left == ['up','down'] :
                element_vegetation_liste5 = down + up
        if rand_liste_3orientation_left == ['right','up']:
                element_vegetation_liste5 = right + up
        if rand_liste_3orientation_left == ['right','down'] :
                element_vegetation_liste5 = right + down

et ensuite juste utiliser ce "rand_liste_3orientation" pour relancer ces même conditions à un autre endroit mais sans devoir tout retaper.

merci d'avance

Re: groupe de condition

Envoyé par mystiro le 19 Janvier 2014 à 02:40

Bonjour,

on peut construire quelque chose avec un dictionnaire qui aurait pour clé les conditions et pour valeur les prédicats :


if_dic = {1==1: 'print("ok")' , 1==2: 'print("pas ok")' }

for cond, pred in if_dic.values():

        if eval(cond):

                 exec(pred)


Retournera: ok

Re: groupe de condition

Envoyé par jacko le 20 Janvier 2014 à 15:21

Pourquoi ne créez-vous pas tout simplement une fonction ?

"grouper du code sous un nom pour le réutiliser plus tard", c'est justement la raison d'être des fonctions :

def rand_liste_3orientation(left):
        if left == ['up','down'] :
                return down + up
        if left == ['right','up']:
                return right + up
        if left == ['right','down'] :
                return right + down

...

element_vegetation_liste5=rand_liste_3orientation(rand_liste_3orientation_left)

 

Note : cet exemple n'est peut-être pas correct : on ne sait pas très bien qu'est-ce qui est variable et qu'est-ce qui est constant dans votre problème. Mais vous avez compris l'idée.

 

Re: groupe de condition

Envoyé par mystiro le 20 Janvier 2014 à 18:37

Accesoirement, fonction ou pas, il serait beaucoup plus propre de mettre des elif à la place des trois derniers if pour s'arrêter après avoir trouvé. (Bon d'accord, dans la fonction ça n'est pas très important avec les return mais tout de même).


Sinon, autant j'aime bien l'idée des dictionnaires que je trouve amusante, autant la fonction est la meilleur solution en terme de lisibilité à l'utilisation.

Rendu par Ploneboard