代码之家  ›  专栏  ›  技术社区  ›  Moorane

在for循环中只执行一次此操作

  •  1
  • Moorane  · 技术社区  · 1 年前

    我需要在for循环中的特定条件下执行一次此操作,以阻止复选框中出现重复项。从理论上讲,我相信这应该有效,但当满足这个if语句的条件时(cycle==1&len(tasks)>1) 它无论如何都会跳过语句,这真的让我很困惑。我一直试图用断点来调试它,但我想不通。

    tasks = [a, b]
    
    def addToList():
        cycles = 0
        for x in range(len(tasks)):
            cycles += 1
            if cycles == 1 & len(tasks) > 1:
                checkList.destroy()
            checkList = Checkbutton(viewTab,text=tasks[x])
            checkList.pack(anchor='w',side=BOTTOM)
    
    1 回复  |  直到 1 年前
        1
  •  3
  •   toyota Supra    1 年前

    问题在于你使用“&”操作人员在Python中“&”是按位AND运算符,而不是逻辑AND运算符。对于逻辑AND,应使用“AND”

    因此,与其:

    if cycles == 1 & len(tasks) > 1:

    您应该使用:

    if cycles == 1 and len(tasks) > 1: