这个问题在fluent python提到,同时引了计算机Edsger W. Dijkstra的解释。简要记录如下
当我们想取出2,3,…12这个区间时,共有四种表达式可选:
a) 2 ≤ i < 13
b) 1 < i ≤ 12
c) 2 ≤ i ≤ 12
d) 1 < i < 13
其中a)、b)表达式可以从两端相减得到区间长度,这是其中一个优点。
但是并不是决定性因素。重新考虑上下界问题。
如果不包含下界情况,那么如果想得到一个自然数数列,必须引入非自然数-1,表达式如下:
-1 < i < N
That is ugly(原文)
包含下界的前提下,如果再包含上界,那么我们如果想通过收缩创造一个空数列就非常别扭。 上界小于下界???That is ugly(原文)
所以a)是区间表达式的首选,即[a, b)。
这在Python中也是惯用方式:
a = [1, 2,