為什麼Range 函數排除上界
在Python 中,range(start, end) 函數產生從start 開始的數字序列並在結束之前結束。這種行為可能會讓一些希望範圍包含結束的使用者感到困惑。
這種排除的原因在於 range(0, 10) 的常見用法。以 0 開頭使用時,range 傳回 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],這是包含 10 個元素的所需序列。這與生成的序列的長度相匹配,確保循環和其他應用程式中的迭代次數正確。
此外,排除上限可以使循環語法更清晰。考慮程式碼片段:
for i in range(len(li)): pass
如果範圍包含結束,當我到達 len(li) 時,上面的程式碼會拋出錯誤,因為它會嘗試存取清單邊界之外的元素。排除上限可以消除這種潛在的錯誤。
程式設計師通常偏好使用 i 範圍為 0 到 len(li) - 1 的 for 循環,而不是 1 到 len(li)。這是由於編程中普遍使用基於 0 的索引。
對於喜歡包含上限的用戶,可以建立自訂函數:
def range1(start, end): return range(start, end + 1)
使用range1(1 , 10) 將產生所需的序列[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
以上是為什麼 Python 的 `range()` 函數會排除上限?的詳細內容。更多資訊請關注PHP中文網其他相關文章!