Python的128个if语句

2024-03-28 23:25:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个tkinter应用程序,我正在工作,它有一个按钮,当按下它时,会触发一个函数。我还有大约7个复选框,当选中时,它会将自己的变量从0更改为1。你知道吗

在函数中,我有一堆if语句,它们遍历复选框的每个组合,执行和操作。这个问题是因为复选框可以有两种状态,off(0)和on(1),有7个复选框——如果我们用2到7的幂来计算每个组合,那么我需要写出128个if语句。你知道吗

我还考虑过编写7 if语句来检查每个复选框的每个状态,然后转到下一个复选框,但是因为我需要循环遍历2个列表并执行不同的操作,所以如果没有重复的日志或我需要的细节,很难记录每个阶段发生的事情。你知道吗

有没有更好的办法?你知道吗

任何帮助都会很好,谢谢!你知道吗

if语句之一的示例

if 'PId' in df and 'CId' in df:
        for i, w in zip(df['CId'], df['PId']):
            if varsd.get() == 1 and varad.get() == 1 and vared.get() == 0 
            and varcn.get() == 0
            and varpn.get() == 0 and varak.get() == 0 and varab.get() == 0:

                for i, b, z in zip(df['CId'], df['PId'], df['NewStartDate']):
                cd['startDate'] = re.sub('^[0-9]{4}-[0-9]{2}-[0-9]{2}', str(z),
                cd['startDate'])

                pd['pricingSchedule']['startDate'] = re.sub('^[0-9]{4}-[0-9]{2}-[0-9]{2}',
                cd['startDate'], pd['pricingSchedule']['startDate'])
                Few more bits

            elif varsd.get() == 1 and varad.get() == 0 and vared.get() == 0 and varcn.get() == 0
            and varpn.get() == 0 and varak.get() == 0 and varab.get() == 0:

               for i, b, z in zip(df['CId'], df['PId'], df['NewStartDate']):
               cd['startDate'] = re.sub('^[0-9]{4}-[0-9]{2}-[0-9]{2}', str(z),
               cd['startDate'])
               Few more bits

Tags: and函数inredfforgetif