為什么 Python 的 Range 要設計成左閉右開?


一般來說:表示 2,3,...,12 這一串自然數有以下四種方法:

a)2 ≤ i < 13

b)1 < i ≤ 12

c)2 ≤ i ≤ 12

d)1 < i < 13

先說下原因有5點:

  • Mesa(參考文獻1)實際應用效果,第一種好;
  • a,b前兩種上下邊界之和剛好等於數列長度;
  • 表示相鄰數列時,前數列的上邊界與后邊界的下邊界相等 ([2,13) 與 [13,15) 相鄰或(1,12]和(12,15]))
  • 如果采用b,那在表示自然數時會不自然起來,因為最小的自然數是零,要表示從零開始的數,下邊界的數就得是-1,(-1,5] 與第一種方法的 [0,6) 相比,顯然a好;
  • 在二分法使用中,區間為[2,8],左右區間為[2,5],[5,8],5多了,算法的結果不准,有的人說可以這樣寫[2,5],[6,8]。是可以,但是在二分的時候還要對數據做處理才能分區間。

參考鏈接:

https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html

https://www.jianshu.com/p/5eaa330788e8

https://www.zhihu.com/question/24883243


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM