
表示不可变数字序列的range类型, 常常用于使for循环循环指定的次数。range(stop) range(start, stop[, step])range构造器的参数得是整数, 这整数可以是内置的int, 也可以是任何实现了特殊方法的对象。要是省略step参数, 那它的默认值是 1。要是省略start参数, 其默认值是 0, 要是step为零就会引发。一旦step呈现为正值, 用以确定内容的公式便是r。等于起始值加上步长乘以i, 其中i大于等于0且r。 stop。假设 step 呈现出为负值的情形, 用于确定 range 内容的那个公式, 其依旧是 r。等于起始值加上步长乘以i, 然而限制条件变更为, i大于或等于0且r。 stop.如果 r要是不符合值的限制条件, 那么该range对象便是空的。range对象固然支持负索引, 然而会把它解读为是从正索引所确立的序列的末尾起始索引。若元素当中的绝对值大于sys.的那个range对象是被允许的, 然而某些特性像是len()有可能引发。一些 range 对象的例子: list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] list(range(0, 30, 5)) [0, 5, 10, 15, 20, 25] list(range(0, 10, 3)) [0, 3, 6, 9] list(range(0, -10, -1)) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] list(range(0)) [] list(range(1, 0)) []range对象达成了, 一般序列的全部操作, 不过拼接与重复是除外的, 这在于range对象能够表示的, 只是符合严格模式的序列, 可是重复以及拼接通常而言都会违背这样的模式。startstart 形参的值 (如果该形参未提供则为 0)stopstop 形参的值stepstep 形参的值 (如果该形参未提供则为 1)使用range类型, 相较于常规的list或者tuple, 其优势在于, 有这样一种情况, 即一个range对象, 无论其表示的范围究竟是多么大, 它总是会占用固定数量的属于数值较小范畴的内存, 原因在于, 它仅仅保存了start、stop以及step这些值, 并且会依据实际需要, 对具体的单项或者子范围的值进行计算。range对象达成了.abc. ABC之实现, 给出囊括检测、元素索引探寻、切片这般的特性, 且对负索引予以支持。r range(0, 20, 2) r range(0, 20, 2) 11 in r False 10 in r True r.index(10) 5 r[5] 10 r[:5] range(0, 10, 2) r[-1] 18使用和!检测range对象是否相等, 是把它作为序列来进行比较, 也就是说, 要是两个range对象所表示的值序列相同, 那就认为它们是相等的, 请注意, 比较结果相等的两个range对象, 可能会有不同的start, stop和step属性, 比如range(0)range(2,1,3), 而range(0,3,2)range(0,4,2)。更改于3.2版, 实现了ABC, 支持切片以及负数索引, 运用int对象在固定时间开展成员检测, 而非对所有项逐一进行迭代。于3.3版作出更改, 定义了;, 还将!;定义为按照range对象所定义的值序列来予以比较, 而非依据对象的标识。3.3新版具有start属性, 3新版具有stop属性3新版具有step属性。