【发布时间】:2022-12-19 20:27:33
【问题描述】:
>>> range(1,11)
给你
[1,2,3,4,5,6,7,8,9,10]
为什么不是 1-11?
他们是随机决定那样做还是有一些我没有看到的价值?
【问题讨论】:
-
阅读 Dijkstra,ewd831
-
基本上,您是在为另一组选择一组差错错误。一组更有可能导致循环提前终止,另一组可能导致异常(或其他语言的缓冲区溢出)。一旦你写了一堆代码,你会发现
range()的行为选择更常见 -
链接到 Dijkstra,ewd831:cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF
-
@andreasdr 但即使装饰性论点是有效的,Python 的方法不会引入新的可读性问题吗?在常用英语中,术语“范围”表示某物范围从某物到一些东西——比如一个间隔。 len(list(range(1,2))) 返回 1 而 len(list(range(2))) 返回 2 是你真正需要学习消化的东西。
-
如果有人说他们想要从绿色到红色的一系列颜色,那么很少有人会说他们不想要红色。所以英语单词范围不是合适的单词。这不会改变,但我认为这是 python 是一种明智语言的盔甲上的一个缝隙。