Python中的range()函数详解:掌握迭代的利器

更多资料获取

📚 个人网站:ipengtao.com


Python中的range()函数是一个强大的工具,用于生成一系列的数字,常用于循环操作。虽然看似简单,但其灵活性和功能却不容小觑。在本文中,将深入研究range()函数,探讨其用法、参数和一些高级技巧,帮助你更好地利用这个迭代工具。

range()函数的基础用法

首先,来看一下range()函数的基本用法。range()函数可以接受一个、两个或三个参数,分别表示起始值、结束值和步长(默认为1)。

# 基本用法
for i in range(5):
    print(i, end=' ')
# 输出: 0 1 2 3 4

上述示例中,range(5)生成了一个从0到4的整数序列,被用于for循环,依次打印了这些数字。

指定起始值和结束值

也可以通过指定起始值和结束值来创建一个范围。这在需要非零起始值或以不同步长进行迭代时非常有用。

# 指定起始值和结束值
for i in range(2, 8):
    print(i, end=' ')
# 输出: 2 3 4 5 6 7

在这个例子中,range(2, 8)生成了一个包含2到7的整数序列。

设置步长

range()函数的第三个参数可以设置步长。这意味着可以按照自定义的步长跳过一些值。

# 设置步长
for i in range(1, 10, 2):
    print(i, end=' ')
# 输出: 1 3 5 7 9

上述代码中,range(1, 10, 2)生成了一个包含1到9的奇数序列。

逆序迭代

range()函数同样可以被用于逆序迭代。通过设置适当的起始值、结束值和负的步长,可以轻松地逆序生成一个序列。

# 逆序迭代
for i in range(10, 0, -2):
    print(i, end=' ')
# 输出: 10 8 6 4 2

在这个例子中,range(10, 0, -2)生成了一个逆序的偶数序列。

创造列表

除了在循环中使用,range()函数还可以用于创建列表。通过将range()的输出传递给list()函数,可以得到一个包含特定范围内所有整数的列表。

# 创建列表
my_list = list(range(3, 9))
print(my_list)
# 输出: [3, 4, 5, 6, 7, 8]

这是一个将range()list()结合使用的常见用法。

使用range()生成字母序列

有时候,希望生成字母序列而不是数字序列。这时,可以借助ord()chr()函数将字符转换为相应的ASCII码和反向转换。

# 生成字母序列
for char in map(chr, range(ord('A'), ord('G'))):
    print(char, end=' ')
# 输出: A B C D E F

这个例子中,range(ord('A'), ord('G'))生成了从’A’到’F’的ASCII码序列,然后通过map()chr()将其转换为字符序列。

range()与列表切片

range()函数还可以与列表切片结合,用于生成指定范围内的索引序列。

# 与列表切片结合
my_list = ['apple', 'orange', 'banana', 'grape']
for i in range(len(my_list)):
    print(my_list[i], end=' ')
# 输出: apple orange banana grape

在这个例子中,range(len(my_list))生成了一个与my_list长度相同的索引序列,用于访问列表中的元素。

高级技巧:生成不等间隔的浮点数

如果你需要生成不等间隔的浮点数序列,可以结合numpy库的arange()函数和range()函数。

import numpy as np

# 生成不等间隔的浮点数序列
for num in np.arange(0, 1, 0.1):
    print(num, end=' ')
# 输出: 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

这个例子中,np.arange(0, 1, 0.1)生成了一个以0.1为步长的浮点数序列。

总结

在Python编程中,range()函数作为一个简单而强大的迭代工具,为程序员提供了灵活性和效率。通过对其参数和用法的深入理解,能够更好地利用这一函数。基础用法中,分享了如何使用range()生成从0开始的整数序列,以及如何指定起始值和结束值。通过设置步长,可以自定义迭代步长,实现更灵活的循环。同时,range()还可以逆序迭代,轻松生成逆序序列。

range()不仅仅在循环中有用,还能用于创建列表。这个特性在需要快速生成数字序列时非常实用。另外,通过与列表切片结合,可以生成索引序列,方便访问列表中的元素。进一步探索中,学到如何使用range()生成字母序列,通过ASCII码的转换实现这一功能。最后,了解了一个高级技巧,结合numpy库的arange()函数,生成不等间隔的浮点数序列。

总之,range()函数是Python编程中一个不可或缺的工具,通过善于运用其灵活的参数,能够编写更为优雅、高效的代码。希望本文的深入讨论和丰富的示例代码,能够帮助大家更好地掌握并运用range()函数,提高编码效率,使代码更加精致。


Python学习路线

在这里插入图片描述

更多资料获取

📚 个人网站:ipengtao.com

如果还想要领取更多更丰富的资料,可以点击文章下方名片,回复【优质资料】,即可获取 全方位学习资料包。

在这里插入图片描述
点击文章下方链接卡片,回复【优质资料】,可直接领取资料大礼包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/228855.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

有哪些值得分享的销售拓客技巧?

拓客对于销售的重要性 拓客(Toker)是一个商业上的名词,核心就是提高售前服务、市场推广的水平,从而挖掘出潜在客户的隐形需求(或称软需求)。 拓客的核心,其实就是提高售前服务、市场推广的水平…

SpringAOP专栏一《使用教程篇》

在b站跟着黑马程序员学习SpringAOP时记的笔记。 面向切面编程AOP是 Spring的两大核心之一。 AOP概述 AOP是什么 AOP英文全称:Aspect Oriented Programming(面向切面编程、面向方面编程),其实说白了,面向切面编程就是…

Meta Platforms推出Imagine:基于Emu的免费AI文本到图像生成器服务

优势主要体现在以下两个方面: 精细运动控制: 该项目在实现摄像机运动和物体运动方面表现出色,成功实现了对两者运动的高度独立控制。这一特性为运动控制提供了更为精细的调整空间,使得在视频生成过程中能够实现更灵活、多样的运动…

OpenCL学习笔记(三)手动编译开发库(win10+mingw64)

前言 有的小伙伴仍然在使用mingw编译器,这时只能重新编译opencl的sdk库。本文档简单记录下win10下,使用mingw11.20编译的过程,有需要的小伙伴可以参考下 一、安装所需软件 1.安装git,教程比较多,不再重复 2.安装cm…

【AUTOSAR】【通信栈】IPduM

AUTOSAR专栏——总目录_嵌入式知行合一的博客-CSDN博客文章浏览阅读310次。本文主要汇总该专栏文章,以方便各位读者阅读。https://xianfan.blog.csdn.net/article/details/132072415 目录 一、概述 二、相关模块 2.1 OS

【hcie-cloud】【6】华为云Stack网络流量详述【VXLAN简介、华为云Stack节点内部网络结构、华为云Stack网络服务流量走向】、缩略语

文章目录 前言VXLAN简介云数据中心业务对网络的诉求和目标数据中心大二层网络的发展VXLAN简介VXLAN的作用及优势VXLAN网络架构 - Spine-LeafSpine-Leaf架构的基本概念Spine-Leaf架构的优势VXLAN基本概念及工作原理:NVEVXLAN基本概念及工作原理:VTEPVXLAN…

Prometheus 发现机制和告警

1.服务发现 Prometheus Server的数据抓取工作于Pull模型,因而,它必需要事先知道各Target的位置,然后才能从相应的Exporter或Instrumentation中抓取数据。在不同的场景下,需要结合不同的机制来实现对应的数据抓取目的。 对于小型的…

整理了一些WPF的布局

在Grid里对一个TextBox定位 <Grid ShowGridLines"True"><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition/><…

微信小程序 - 创建 ZIP 压缩包

微信小程序 - 创建 ZIP 压缩包 场景分享代码片段导入 JSZip创建ZIP文件追加写入文件测试方法参考资料 场景 微信小程序只提供了解压ZIP的API&#xff0c;并没有提供创建ZIP的方法。 当我们想把自己处理好的保存&#xff0c;打包ZIP保存下来时就需要自己实现了。 分享代码片段…

Docker基本管理

Docker概述 1.Docker简介 Docker是一个开源的应用容器引擎&#xff0c;基于go语言开发并遵循了apache2.0协议开源。 Docker是在Linux容器里运行应用的开源工具&#xff0c;是一种轻量级的“虚拟机”。 Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移…

华为快游戏SDK接入踩坑记录

华为快游戏被驳回常见问题&#xff1a; 游戏开始前著作权人、健康游戏忠告等信息显示不全&#xff08;页面停留时间不宜过短&#xff0c;如果过短也可能会审核不通过&#xff09; 激励视频有部分请求是实时的&#xff0c;没有预加载 无隐私权限或者是同意隐私权限进入应用后&am…

2024年AI视频识别技术的6大发展趋势预测

随着人工智能技术的快速发展&#xff0c;AI视频识别技术也将会得到进一步的发展和应用。2023年已经进入尾声&#xff0c;2024年即将来临&#xff0c;那么AI视频识别技术又将迎来怎样的发展趋势&#xff1f;本文将对2023年的AI视频技术做一个简单的盘点并对2024年的发展趋势进行…

隆道总裁吴树贵出席山东CIO年会 探讨AI在采购场景的应用

12月2日&#xff0c;由山东省首席信息官&#xff08;CIO&#xff09;联盟主办的2023&#xff08;第14届&#xff09;山东CIO年会在济南召开&#xff0c;本届盛会汇集业界专家、企业高管、技术厂商等&#xff0c;共同探讨企业数字化转型的未来趋势和发展动力&#xff0c;推动数字…

最简单的基于 FFmpeg 的音频解码器

最简单的基于 FFmpeg 的音频解码器 最简单的基于 FFmpeg 的音频解码器正文参考 参考雷霄骅博士的文章&#xff0c;链接&#xff1a;最简单的基于FFMPEGSDL的音频播放器&#xff1a;拆分-解码器和播放器 最简单的基于 FFmpeg 的音频解码器 正文 FFmpeg 音频解码器实现了音频数…

IO流(Java)

IO流 在学习IO流之前&#xff0c;我们首先了解一下File File File即文件或文件夹路径对象&#xff0c;其示例类可以是存在路径也可以是未创造路径 File有什么用 用于创建或操作文件或文件夹 File常用API API部分看得懂会查会用即可 IO流 IO(Input 读数据 Output写数据…

scikit-learn实现线性回归

要学习scikit-learn,我们必须要到scikit-clearn的官网中去查看公式和原理 scikit-learn 官网 scikit-learn 中文社区 进入官网一以后我们找到回归&#xff0c;然后再有监督学习中找到线性模型 scikit-learn实现简单的线性回归 公式&#xff1a; L2范数是指向量中每个元素的平…

倒计时模块复习

经典回顾倒计时 倒计时的基本布局介绍。 一个内容区域和一个输入区域&#xff0c;内容区域进行划分 直接使用flex布局会更快一点。 js代码 我们利用一下模块化思想&#xff0c;直接把获得时间这个功能写成一个函数。方便后续的调用 function getTime() {const date new Date…

第一课【习题】三方库

三方组件是开发者在系统能力的基础上进行了一层具体功能的封装&#xff0c;对其能力进行拓展的工具 。 可以通过ohpm uninstall 指令下载指定的三方库 lottie使用loadAnimation方法加载动画。 通过ohpm安装lottie后&#xff0c;在哪个文件中会生成相关的配置信息&#xf…

【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Java入门到精通 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 一. Java语言概述与优势1.1 Java的概述1.2 Java语言的优势 二. Java领域与发展史2.1 Java的使用领域2.…

智能优化算法应用:基于跳蛛算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于跳蛛算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于跳蛛算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.跳蛛算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…