jeudi 30 avril 2020

Handling nested ladder python

I have some multiple condition with boolean in dictionary

d = { 
        "statement01" = True,
        "statement02" = True, 
        "statement03" = False, 
        "statement04" = False, 
        "statement05" = False
    }

And I use if elif

Method 1

if d["statement05"]:
        if d["statement01"]:
                func01()
                func05()
elif d["statement04"]:
        if d["statement01"]:
                func01()
                func04()
elif d["statement03"]:
        if d["statement01"]:
                func01()
                func03()
elif d["statement02"]:
        if d["statement01"]:
                func01()
                func02()
elif not d["statement01"]:
        if d["statement05"]:
                func05()
        elif d["statement04"]:
                func04()
        elif d["statement03"]:
                func03()
        elif d["statement02"]:
                func02()
        else:
                func01x()

Method 2

if d["statement01"]:
        func01()
        if d["statement02"]:
                func02()
        elif d["statement03"]:
                func03()
        elif d["statement04"]:
                func04()
        elif d["statement05"]:
                func05()
elif not d["statement01"]:
        if d["statement02"]:
                func02()
        elif d["statement03"]:
                func03()
        elif d["statement04"]:
                func04()
        elif d["statement05"]:
                func05()
        else:
                func01x()

With d condition I expect the result is do func01() and func02()

but if condition dictionary like

d2 = { 
        "statement01" = True,
        "statement02" = False, 
        "statement03" = False, 
        "statement04" = False, 
        "statement05" = False
    }

I expect only do func01() and if the dictionary like

d3 = { 
        "statement01" = False,
        "statement02" = True, 
        "statement03" = False, 
        "statement04" = False, 
        "statement05" = False
    }

Only do func02()

Is anyone can give other/best way to handle condition and expected result or maybe not in if else method?

Aucun commentaire:

Enregistrer un commentaire