跳到主要内容

Python range() 函数

range() 函数返回给定范围内的一系列数字。

示例

# 创建一个从 0 到 3 的数字序列
numbers = range(4)

# 遍历数字序列
for i in numbers:
print(i)

# 输出:
# 0
# 1
# 2
# 3

注意: range() 返回一个不可变的数字序列,可以很容易地转换为列表、元组、集合等。

range() 语法

range() 函数最多可以接受三个参数:

range(start, stop, step)

range() 中的 startstep 参数是可选的。

现在,让我们看看 range() 在不同数量的参数下是如何工作的。

示例 1:只有 Stop 参数的 range()

如果我们向 range() 传递一个参数,意味着我们传递的是 stop 参数。

在这种情况下,range() 返回从 0 开始到该数字的一系列数字(但不包括该数字)。

# 从 0 到 3 的数字(4 不包括)
numbers = range(4)
print(list(numbers)) # [0, 1, 2, 3]

# 如果传递 0 或负数,我们会得到一个空的序列
numbers = range(-4)
print(list(numbers)) # []

示例 2:有 Start 和 Stop 参数的 range()

如果我们向 range() 传递两个参数,意味着我们传递的是 startstop 参数。

在这种情况下,range() 返回从 start (包括)开始到 stop (不包括)的一系列数字。

# 从 2 到 4 的数字(5 不包括)
numbers = range(2, 5)
print(list(numbers)) # [2, 3, 4]

# 从 -2 到 3 的数字(4 不包括)
numbers = range(-2, 4)
print(list(numbers)) # [-2, -1, 0, 1, 2, 3]

# 返回一个空的数字序列
numbers = range(4, 2)
print(list(numbers)) # []

示例 3:有 Start, Stop 和 Step 参数的 range()

如果我们传递所有三个参数,

  • 第一个参数是 start
  • 第二个参数是 stop
  • 第三个参数是 step

step 参数指定序列中两个数字之间的增量。

# 从 2 到 10 的数字,数字之间以 3 递增
numbers = range(2, 10, 3)
print(list(numbers)) # [2, 5, 8]

# 从 4 到 -1 的数字,以 -1 递减
numbers = range(4, -1, -1)
print(list(numbers)) # [4, 3, 2, 1, 0]

# 从 1 到 4 的数字,以 1 递增
# range(0, 5, 1) 等同于 range(5)
numbers = range(0, 5, 1)
print(list(numbers)) # [0, 1, 2, 3, 4]

注意: start 的默认值是 0,step 的默认值是 1。这就是为什么 range(0, 5, 1) 等同于 range(5)

range() 在 for 循环中的应用

range() 函数通常用于 for 循环 中,以迭代循环特定次数。例如,

# 循环迭代 5 次
for i in range(5):
print(i, 'Hello')

0 Hello
1 Hello
2 Hello
3 Hello
4 Hello