L14-Python爲什麼要用左開右閉

最近看到這個提問,便蒐集、整理了一下。看完後會認識到:左開右閉,能充分體現Python語言簡潔、優雅的特徵。

1. 樣例說明

表示 1,2,3,…,9 這樣一個序列,有四種方法

  • 方法一: 左閉右開區間 : 1 ≤ i < 10
  • 方法二: 1.2 左開右閉區間: 0 < i ≤ 9
  • 方法三: 閉區間 : 1 ≤ i ≤ 9
  • 方法四:1.4 開區間 : 0 < i < 10
    這四種方法哪一種最優,各有什麼優缺點呢?

2. 優缺點說明

2.1 序列長度分析

方法一和方法二, 他們邊界之間的差正好等於序列的長度。

2.2 相鄰序列鄰值比較

方法一和方法二,在這兩種表示方法中,如果我們觀察兩個相鄰的序列,那麼其中一個序列的上限正好等於另一個的下限。

2.3 下界值約束

。自然數是有最小值的(0)。如果像第二種和第四種那樣,在下界採用 < ,那麼當我們想表示一個從0開始的序列,那麼下界會出現非自然數-1(比如 0,1,…,5 會被表示成 -1 < i ≤ 5),這種表示法顯然不夠優雅,所以對下界而言,我們最好選擇 ≤。

2.4 上界值約束

在下界使用 ≤ 時,序列便可以從最小的自然數0開始,此時,如果我們想要表示空集的話,當上屆同樣採用 ≤ 時會導致上界小於下屆並出現非自然數,如:0 ≤ i ≤ -1 。顯然,這也是不夠優雅的,也不符合我們的習慣。而如果上界使用 <,就會方便很多,同樣,表示空集:0 ≤ i < 0。因此對於上界,我們採用 < 。

3. 總結

綜上所述,Python中的Range函數設計成左閉右開區間是比較優雅的

  • 自然數從0 開始,值應該在自然數範圍內,判斷的可讀性纔夠優雅、簡潔
  • 若下界要從0開始時, 下界用< 則需要寫爲 -1< x ,所以下界用<=
  • 若要表示空集時,上界用<時,則要寫爲 1<=x<0 ,導致 下界值>上界值,明顯不夠優雅
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章