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 ,导致 下界值>上界值,明显不够优雅
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章