专业编程基础技术教程

网站首页 > 基础教程 正文

Python range 函数实用指南(range函数的用法python)

ccvgpt 2025-06-13 11:41:28 基础教程 4 ℃

对话实录

小白:(抓狂)我写了for i in range(5):,为什么只到 4?

专家:(推眼镜)range 是左闭右开区间!记住:包含起点,不包含终点!

Python range 函数实用指南(range函数的用法python)

基础用法三连击

1. 标准用法

# 生成0-4
print(list(range(5)))  # → [0,1,2,3,4]
# 指定起点
print(list(range(2,6)))  # → [2,3,4,5]
# 指定步长
print(list(range(1,10,2)))  # → [1,3,5,7,9]

专家提醒:range 返回的是 range 对象,不是列表!

2. 负步长用法

# 倒序生成
print(list(range(5,0,-1)))  # → [5,4,3,2,1]
# 实战案例:字符串反转
s = "hello"
print(''.join([s[i] for i in range(len(s)-1,-1,-1)]))  # → "olleh"

实战案例

案例 1:生成索引

fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
  print(f"{i}: {fruits[i]}")

案例 2:创建等差数列

# 0到1之间10个点
points = [i/10 for i in range(11)]
print(points)  # → [0.0,0.1,0.2,...,1.0]

案例 3:矩阵初始化

# 3x3矩阵
matrix = [[0 for _ in range(3)] for _ in range(3)]
print(matrix)  # → [[0,0,0],[0,0,0],[0,0,0]]

案例 4:进度条模拟

import time
for i in range(101):
  print(f"\r进度:[{'#'*(i//2)}{' '*(50-i//2)}] {i}%", end="")
  time.sleep(0.05)

四大血泪陷阱

空 range

# 错误示范
for i in range(5,2):  # 不会报错,但不会执行
  print(i)
# 正确做法
for i in range(5,2,-1):
  print(i)  # → 5 4 3

浮点数 range

# 错误示范
for i in range(0.1, 0.5, 0.1):  #  TypeError
  print(i)
# 正确做法
from numpy import arange
for i in arange(0.1, 0.5, 0.1):
  print(i)  # → 0.1 0.2 0.3 0.4

大 range 内存问题

# 错误示范
nums = list(range(10**8))  # 内存爆炸!
# 正确做法
for i in range(10**8):  # range对象是惰性的
  process(i)

专家工具箱

1. range 属性检查

r = range(1,10,2)
print(r.start)  # → 1
print(r.stop)   # → 10
print(r.step)   # → 2

2. range 切片操作

r = range(10)
print(r[2:5])   # → range(2,5)
print(r[::2])   # → range(0,10,2)

3. 自定义 range 类

class FloatRange:
  def __init__(self, start, stop, step):
    self.start = start
    self.stop = stop
    self.step = step
  def __iter__(self):
    current = self.start
    while current < self.stop:
      yield current
      current += self.step


for f in FloatRange(0.1, 0.5, 0.1):
  print(f)  # → 0.1 0.2 0.3 0.4

小白:(献上膝盖)原来 range 这么强大!

专家:(扶起小白)记住:range 是 Python 的序列生成神器!

最近发表
标签列表