为什么在 if 语句中使用整型变量?

Why is an integer variable used in an if statement?

在下面的代码片段中,next_dot 被用在了 if 语句中,为什么?

def on_mouse_down(pos): 
    if dots[next_dot].collidepoint(pos): 
        if next_dot: 
            lines.append((dots[next_dot - 1].pos, dots[next_dot].pos))

        next_dot = next_dot + 1

    else:
        lines = []
        next_dot = 0

我不明白 "if next_dot:" 的作用以及它对这段代码的贡献。

在python中,变量是"falsy"或"truthy",这意味着当"if"语句将变量计算为表达式时,它将给出false或真的。 Falsy 变量是例如空字符串、空列表、零和 none,而 truthy 变量是具有值的变量,例如 [1,2,3] 或 'foo'.

if 0:
    # this code will never run

if []:
    # this code will never run

if 1:
    # this code will always run

既然你不想运行那个函数如果next_dot是0,因为那样你会得到一个负索引,他放了一个if语句。

欢迎来到 Stack Overflow!对于数字,0 将始终评估为 False。其他一切都将评估为真。此外,因为它是一个数字,所以它可以递增,并且 if 块中的代码可以执行精确的次数。