Python - 详解 range()

简介: Python - 详解 range()

介绍


  1. range 是一个类,不是函数
  2. 表示不可变的数字序列,通常用于在 for 循环中循环指定的次数

 

两种语法格式


range(stop)

  • 表示区间 [0, stop) 内的整数序列
  • 该区间从 0 开始、到 stop 结束,不包含 stop

 

range(start, stop[, step])

  • 表示区间 [start, stop) 内的整数序列
  • 该区间从 start 开始、到 end 结束,不包含 end
  • step 是步进,默认是 1

 

step 的取值规则

  • 如果 step正值,确定 range 某个值的公式为 r[i] = start + step*i 其中 i >= 0r[i] <stop
  • 如果 step负值,确定 range 某个值的公式仍然为 r[i] = start + step*i,但限制条件改为 i >= 0r[i] >stop

 

返回值

都是 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]
>>> tuple(range(0, 10, 3))
(0, 3, 6, 9)>>> set(range(0, -10, -1))
{0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
>>> list(range(0))
[]
>>> list(range(1, 0))
[]


range 的优势


相比常规的 list、tuple,range 的优势在于range 对象总是占用固定数量的较小内存,无论其所表示的范围有多大

 

range 的特性


range 对象实现了 collections.abc.Sequence ,提供了包括 index、索引、切片等特性

r = range(0, 20, 2)
print(r)
print(list(r))
# in
print(10 in r)
print(11 not in r)
# index
print(r.index(6))
# 切片
print(r[2])
print(r[-1])
# 输出结果
range(0, 20, 2)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
True
True
3
4
18


但是切片仅支持索引取值 [ ],不支持 [ : ] 来取值

 

==、!= 操作


使用 ==!= 检测 range 对象是否相等是将其作为序列来比较

r1 = range(0, 4, 2)
r2 = range(0, 3, 2)
print(r1 == r2)
# 输出结果
True


循环遍历 range


for item in range(3):
    print(item)
# 输出结果
0
1
2
相关文章
|
8月前
|
JavaScript 前端开发 测试技术
[小笔记]TypeScript/JavaScript模拟Python中的Range函数
[小笔记]TypeScript/JavaScript模拟Python中的Range函数
84 0
|
Python
Python内置函数range( )
Python内置函数range( )
79 0
|
2月前
|
Python
Python中的`range`函数与负增长
在Python中,`range`函数用于生成整数序列,支持正向和负向增长。本文详细介绍了如何使用`range`生成负增长的整数序列,并提供了多个实际应用示例,如反向遍历列表、生成倒计时和计算递减等差数列的和。通过这些示例,读者可以更好地掌握`range`函数的使用方法。
69 5
|
3月前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
43 1
|
存储 Python
Python 教程之控制流(5)Python 中的 range() 与 xrange()
Python 教程之控制流(5)Python 中的 range() 与 xrange()
64 0
|
6月前
|
存储 索引 Python
【Python】已解决:IndexError: list index out of range
【Python】已解决:IndexError: list index out of range
564 1
|
7月前
|
Python
在Python中,`range()`函数生成一个整数序列,用于循环迭代。
【6月更文挑战第19天】`Python`的`range()`函数生成整数序列,用于迭代。它接受`start`(默认0)、`stop`(不包含,右开)和`step`(默认1)参数。在`for`循环中,`range(5)`会输出0到4。若要包含结束值,需将`stop`设为`end+1`,如`range(1, 6)`将输出1到5。
97 1
|
Serverless BI Python
Python中的for循环和range()函数用法详解
Python中的for循环和range()函数用法详解
|
8月前
|
索引 Python
【Python 基础】解释Range函数
【5月更文挑战第6天】【Python 基础】解释Range函数
|
8月前
|
存储 索引 Python
【Python21天学习挑战赛】-列表 & 元组 & range
【Python21天学习挑战赛】-列表 & 元组 & range