Python在此for循环中没有给我一个索引错误:
s = ['one', 'two']
for index, char in enumerate(s):
if s[index - 1] != ' ' or s[index + 1212] != ' ':
pass
但条件互换后,确实给了我一个索引错误:
s = ['one', 'two']
for index, char in enumerate(s):
if s[index + 1212] != ' ' or s[index - 1] != ' ':
pass
有人在解释吗?
答案 0 :(得分:1)
在大多数编程语言(包括Python)中,布尔表达式一次被评估为一部分,一旦其中一部分为假,评估就停止。这称为“ short-circuit evaluation”或“最低评估”。
在您的情况下,如果s[index - 1] != ' '
为假,则s[index + 1212] != ' '
完全不会被评估,从而不会引发错误。