[英]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.