Python range 函数实用指南

liftword23小时前技术文章1

对话实录

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

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

基础用法三连击

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 的序列生成神器!

相关文章

Python必会的20核心函数—range()函数

range()函数是Python中用于生成不可变数字序列的核心函数,它在循环控制和序列生成中扮演着重要角色。本文将全面解析range()函数的用法和特性。1. range()函数的基本用法1.1 基本...

深入解析Python中的range()函数

range()是Python中一个非常基础且功能强大的内置函数,广泛用于循环控制和数字序列生成。它在迭代、索引处理和循环次数控制中扮演重要角色。本文将从基础用法到高级技巧,全面解析range()的使用...

Python 之 range函数

# range(start, stop[, step])# 注意:数据范围是左闭右开区间,数据类型是整数# default,默认从0开始for i in range(5):print(i, end=&...

Python基础入门之range()函数用方法详解

range() 是Python的一个内置函数,返回的是一个可迭代对象。用于创建数字序列。语法格式:range(start, stop, step)即:range(初值, 终值, 步长)range()函...

python range基础介绍

在Python中,我们经常会用到 for i in range(3) 这样的循环方式,这里的 range 是Python的内置函数,用于生成整数序列,设计初衷是高效创建数值序列。与直接创建列表存储序列...

Python中range() 函数的使用介绍(附代码)

本篇文章给大家带来的内容是关于Python中range()函数的使用介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。range()是python的内置函数,用的地方挺多的...