为什么在 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 块中的代码可以执行精确的次数。
在下面的代码片段中,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 块中的代码可以执行精确的次数。