[英]index out of range doesn't raise IndexError in Python
与布尔值一起使用时,可能不会引发IndexError 。
例如,假设
list 1 = [1, 2, 3]
这将返回True 。
True or True and list1[3] > 3
但这会引发IndexError 。
False or True and list1[3] > 3
第一行将读取True
并且不会继续,因为有一个or
所以list[3] > 3
无关紧要并且不会被评估,而是返回 True 。
第二行以False
+ 开头, or
要求它读取下一个 boolean 表达式以返回 output。 它将读取True
并尝试评估list[3] > 3
表达式,这将引发 IndexError
这是因为 boolean 运算符的性质True or True and list1[3] > 3
因为您已将其编写为True or some logic
,因为它遇到True
和尾随or
它将简单地忽略逻辑的True
因为如果逻辑以True
开头并且在两者之间有 a or
之间但如果它可能是False
and
因为True and False
返回False
,因此它将检查逻辑的 rest。 而你的第二个以False
开头or
因此如果它后面跟着一个False
可以是error
因为索引号直到 2。列表索引从 0 开始。这将起作用:
首先使您的列表名称正确:
list1 = [1, 2, 3]
False or True and list1[2] > 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.