当前位置: 首页 > news >正文

Python 的内置函数 range

Python 内建函数列表 > Python 的内置函数 range

Python的内置函数range详解

range()是Python中一个非常实用的内置函数,主要用于生成一个不可变的整数序列。它在循环和迭代操作中应用广泛。

基本语法

range()函数有三种调用方式:

  1. range(stop):生成从0开始到stop-1的整数序列
  2. range(start, stop):生成从start开始到stop-1的整数序列
  3. range(start, stop, step):生成从start开始到stop-1的整数序列,步长为step

详细说明

参数特点

  • start:序列的起始值(包含),默认为0
  • stop:序列的结束值(不包含)
  • step:步长(可以为正数或负数),默认为1

返回值

range()函数返回的是一个range对象,而不是列表。这个对象是惰性求值的,只有在需要时才计算值。如果需要列表,可以用list()转换:

numbers = list(range(5))  # [0, 1, 2, 3, 4]

示例应用

基础示例

# 生成0-4的序列
for i in range(5):print(i)  # 输出: 0 1 2 3 4# 生成2-5的序列
for i in range(2, 6):print(i)  # 输出: 2 3 4 5# 生成0-10的偶数序列
for i in range(0, 11, 2):print(i)  # 输出: 0 2 4 6 8 10# 反向序列
for i in range(5, 0, -1):print(i)  # 输出: 5 4 3 2 1

实际应用场景

  1. 循环固定次数
for _ in range(3):print("Hello")  # 打印3次Hello
  1. 列表索引遍历
fruits = ['apple', 'banana', 'cherry']
for i in range(len(fruits)):print(f"Index {i}: {fruits[i]}")
  1. 数学运算序列
squares = [x**2 for x in range(10)]  # 生成0-9的平方列表
  1. 时间序列生成
hours = list(range(0, 24, 3))  # [0, 3, 6, 9, 12, 15, 18, 21]

注意事项

  1. range()生成的序列不包含结束值
  2. 步长不能为0,否则会引发ValueError
  3. 对于负步长,start应该大于stop
  4. range对象支持索引、切片等操作,但不支持修改
  5. 相比直接生成列表,range()更节省内存,特别是处理大范围时

性能优势

range()相比直接生成列表的优势在于:

  • 内存效率高:只存储start、stop和step值,不存储完整序列
  • 计算效率高:只在需要时才计算当前值
  • 支持无限序列(理论上):虽然实际受限于系统资源

在Python 3中,range()的这种"惰性"特性使其成为处理大范围数字序列的理想选择。

http://www.dtcms.com/a/266148.html

相关文章:

  • 高边驱动 低边驱动
  • 黑暗中的爆破(船讯网Ais爬虫暨爬虫实战js逆向学习经验分享)
  • 车载以太网-IP 掩码 vlan 端口
  • SciPy 安装使用教程
  • [特殊字符] 电子机械制动(EMB)产业全景分析:从技术演进到千亿市场爆发
  • 高通QCS8550部署YOLO-NAS模型与性能测试
  • 使用excel中的MATCH函数进行匹配数据
  • Python数据库软件:查询与预测功能集成系统
  • Linux常见指令以及权限理解
  • 使用 Flask 构建基于 Dify 的企业资金投向与客户分类评估系统
  • HTTP详细介绍
  • Windows 10 2016 长期服务版
  • 仿小红书交流社区(微服务架构)
  • day 58 python打卡
  • AppInventor2 标签内容过多,如何做到可上下滑动?
  • 【WRFDA教程第一期】运行观测预处理程序(OBSPROC)
  • 数据结构:数组在编译器中的表示(Array Representation by Compiler)
  • oracle锁表,oracle解锁表,oracle用户连接数
  • ArcGISPro应用指南:ArcGISPro制图全流程详解
  • 前端面试专栏-算法篇:17. 排序算法
  • Redis常见性能问题和解决方案有哪些?
  • 《UE5_C++多人TPS完整教程》学习笔记41 ——《P42 蹲伏(Crouching)》
  • Flutter基础(ListView.builder)
  • Pandas 安装使用教程
  • 黑马python(二十四)
  • Java——初始guava(1)
  • win11设置任务栏为顶部
  • 「Java流程控制」循环综合应用
  • Redis大Key问题
  • 【PyCharm 2025.1.2配置debug】