Skip to content

range

range 函数是 Python 中一个非常实用的内置函数,它用于生成一个整数序列,常用于循环控制,尤其是在需要对一定范围内的数字进行迭代操作时。

range 函数的基本用法

range 函数有三种常见的用法:

  1. range(stop): 生成从 0 开始,到 stop 结束(不包含 stop)的整数序列。
  2. range(start, stop): 生成从 start 开始,到 stop 结束(不包含 stop)的整数序列。
  3. range(start, stop, step): 生成从 start 开始,到 stop 结束(不包含 stop),步长为 step 的整数序列。
python
# 生成从 0 到 5 的整数序列(不包含 5)
for i in range(5):
    print(i)  # 输出:0 1 2 3 4

# 生成从 2 到 8 的整数序列(不包含 8)
for i in range(2, 8):
    print(i)  # 输出:2 3 4 5 6 7

# 生成从 1 到 10,步长为 2 的整数序列
for i in range(1, 11, 2):
    print(i)  # 输出:1 3 5 7 9

range 函数的特性

  • 不可变序列: range 函数返回的是一个不可变的序列,无法直接修改其元素的值。
  • 惰性求值: range 函数不会立即生成整个整数序列,而是在需要的时候才生成。这可以节省内存,尤其是在处理大型序列时。
  • 可迭代对象: range 函数返回的对象是一个可迭代对象,可以直接在循环中使用。

range 函数的应用场景

  • 循环控制: range 函数常用于循环控制,例如遍历列表、生成一定范围内的数字等。
  • 列表推导: range 函数可用于列表推导,生成包含一定范围内的数字的列表。
  • 函数参数: range 函数可以作为函数的参数,例如用于指定循环次数。
python
# 使用 `range` 函数遍历列表
names = ["Alice", "Bob", "Charlie"]
for i in range(len(names)):
    print(names[i])  # 输出:Alice Bob Charlie

# 使用 `range` 函数进行列表推导
squares = [i**2 for i in range(1, 6)]
print(squares)  # 输出:[1, 4, 9, 16, 25]

# 使用 `range` 函数作为函数参数
def print_numbers(n):
    for i in range(n):
        print(i)

print_numbers(5)  # 输出:0 1 2 3 4

range 函数的注意事项

  • 步长: 当步长为负数时,start 应该大于 stop,例如 range(10, 0, -1)
  • 空序列: 如果 start 等于 stop,或者步长为 0,则 range 函数会生成一个空序列。

range 函数的替代方案

  • 列表推导: 对于简单的场景,可以使用列表推导来生成整数序列。例如 [i for i in range(5)] 等价于 range(5)
  • 循环计数: 在一些场景下,可以使用循环变量来控制循环次数,例如 for i in range(5) 可以用 for i in [0, 1, 2, 3, 4] 来代替。

总结

range 函数是 Python 中一个非常重要的内置函数,它可以方便地生成整数序列,并在循环控制、列表推导等场景中发挥重要作用。

Released under the MIT License.