首页 > 编程语言 >range函数python用法

range函数python用法

时间:2024-04-16 18:34:12浏览次数:37  
标签:函数 迭代 python stop step 用法 range 序列

range函数python用法

概述

range()是python的一个内置函数,用来创建一个整数序列,常用于for循环中。理解range()的运用会对我们使用循环很有帮助。

语法

range函数语法格式如下:

  • - start:序列的起始数值,默认从0开始

  • - stop:序列结束的数值(不包含在序列中)

  • - step:步长,默认为1

参数说明

1.只有一个参数

range(stop)会创建一个从0开始一直增加到stop - 1的整数序列。例如:

输出结果:

2.有两个参数

range(start, stop)将会创建一个从start开始一直增加到stop - 1的整数序列。例如:

输出结果:

这里的stop值为5,但是实际上是创建1到4的序列,不包含stop本身。

3.有三个参数

range(start, stop, step)中的step表示每次跳跃的步长。例如:

输出结果:

这里我们设置start=1, stop=10, step=2,因此每次会跳跃2个数。

range类型

需要注意的是,range对象不是一个列表,而是一个只能迭代的”可迭代对象”。我们可以用list()来转换为列表类型。例如:

输出:

range函数示例

1.打印序列

range最简单的用法就是打印序列,例如我们想打印一个1-10的整数序列:

2.与列表推导式结合

由于range对象可以快速生成整数序列,我们可以将其与列表推导式结合使用:

3.与numpy数组结合

NumPy是python做科学计算的必备库。如果我们想生成一个递增的NumPy数组:

arange方法等效于range函数。

4.索引序列

我们可以利用range输出一个索引序列,来获取元组、列表或字符串中的元素:

5.结合enumerate函数

根据索引迭代元素时,我们通常会用到内置的enumerate函数,它会将索引和元素组合成一个元组:

这种方式更加Pythonic,无需使用range函数。

6.步长应用

选择不同的步长可以跳过不需要的元素,实现采样功能:

这里我们设置step=3,因此每次跳过两个数字。

7.反向迭代

如果想反向迭代序列,可以:

只需要将step设为负数即可。

8.结合random选择随机数

random库常用于生成随机数,结合range可以返回一个随机索引:

randrange和range使用类似,只是返回一个随机整数而不是序列。

range函数原理

实际上range使用了一种名为”迭代器”的技术来高效生成数值序列,而没有真的先创建一个完整的列表再返回,这才保证了range占用内存很小。

我们可以利用自己实现一个简单的Range类,模拟range的工作原理:

这里 ourRange类实现了__iter__方法和yield语法,使得该类成为一个generator,可以按照规则一个一个地生成数值,而不是事先准备好一个完整数值列表。

这就是range函数的基本思想。

range常见问题

最后,我们来讨论下range使用过程中的一些常见问题。

1. range不包含end端点

这个问题之前已经提及过。很多人很容易忽略,必须要注意。

2. range必须为整数类型

由于range的输入必须为整数,所以不能是浮点数:

3. start,end,step的顺序不能搞反

如果搞反参数顺序则会产生意外的序列:

必须传入正确的顺序,否则需要对结果序列逆序处理。

4. 步长不能为0

如果将step设置为0,将会抛出异常:

这是因为步长为0会造成无限循环。

小结

以上就是Python range完整用法,希望对大家有帮助。range函数是Python迭代中很重要的一个工具。

range主要特点为:

- 是一个可迭代对象,而不是列表

- 不会一次性将所有值加载到内存中,数据量大时更高效

- 使用参数控制数列范围和步长,用法灵活

需要注意的参数顺序、边界指示等问题。

多加练习,灵活运用range函数可以使我们的代码更加Pythonic!

#python#举报/反馈 原文链接:https://baijiahao.baidu.com/s?id=1785334041105964426&wfr=spider&for=pc

标签:函数,迭代,python,stop,step,用法,range,序列
From: https://www.cnblogs.com/sunny3158/p/18138914

相关文章

  • python-函数参数的学习
    '''函数的参数实际上是实际参数传给形式参数的过程通用性更强,可以理解为一个模版'''#defadd(a,b):#a,b是形参#print(a+b)#add(2,3)#传递参数'''1.必选参数,定义了几个,就必须传几个'''#deffunb(a,b):#result=a-b#print(result)#funb......
  • JavaScript简介:从概念、特点、组成和用法全面带你快速了解JavaScript!
    JavaScript,简称JS,是一种轻量级的解释型编程语言,它是网页开发中不可或缺的三剑客之一,与HTML和CSS并肩作战,共同构建起我们浏览的网页。今天我们就来了解一下JavaScript,看看它在我们的web前端开发中扮演着什么样的角色。一、JavaScript是什么?JavaScript(简称“JS”)是一种具有函数优......
  • Python 入门指南(四)
    原文:zh.annas-archive.org/md5/97bc15629f1b51a0671040c56db61b92译者:飞龙协议:CCBY-NC-SA4.0第十章:哈希和符号表我们之前看过列表,其中项目按顺序存储并通过索引号访问。索引号对计算机来说很有效。它们是整数,因此它们快速且易于操作。但是,它们并不总是对我们很有效。例如,......
  • Python 入门指南(五)
    原文:zh.annas-archive.org/md5/97bc15629f1b51a0671040c56db61b92译者:飞龙协议:CCBY-NC-SA4.0第十六章:Python中的对象因此,我们现在手头上有一个设计,并且准备将该设计转化为一个可工作的程序!当然,通常情况下不会这样。我们将在整本书中看到好的软件设计示例和提示,但我们的重......
  • Python 入门指南(六)
    原文:zh.annas-archive.org/md5/97bc15629f1b51a0671040c56db61b92译者:飞龙协议:CCBY-NC-SA4.0第十九章:何时使用面向对象编程在之前的章节中,我们已经涵盖了面向对象编程的许多定义特性。我们现在知道面向对象设计的原则和范例,并且我们已经涵盖了Python中面向对象编程的语......
  • Python 入门指南(七)
    原文:zh.annas-archive.org/md5/97bc15629f1b51a0671040c56db61b92译者:飞龙协议:CCBY-NC-SA4.0第二十二章:Python设计模式I在上一章中,我们简要介绍了设计模式,并介绍了迭代器模式,这是一个非常有用和常见的模式,以至于它已经被抽象成了编程语言本身的核心。在本章中,我们将回顾......
  • Python 比特币编程实用指南(全)
    原文:zh.annas-archive.org/md5/2feb12244d893eae70a77f3f952c5da5译者:飞龙协议:CCBY-NC-SA4.0前言在本书中,您将介绍比特币和区块链,以及如何参与比特币生态系统。您将了解比特币及其特性、区块链以及两者如何共同工作。您还将学习如何使用Pi比特币工具来用Python编程比......
  • Python 入门指南(三)
    原文:zh.annas-archive.org/md5/97bc15629f1b51a0671040c56db61b92译者:飞龙协议:CCBY-NC-SA4.0第六章:算法设计原则我们为什么要学习算法设计?当然有很多原因,我们学习某事的动机很大程度上取决于我们自己的情况。对于对算法设计感兴趣有重要的职业原因。算法是所有计算的基础......
  • Python 物联网入门指南(五)
    原文:zh.annas-archive.org/md5/4fe4273add75ed738e70f3d05e428b06译者:飞龙协议:CCBY-NC-SA4.0第十四章:文件I/O和Python工具在本章中,我们将详细讨论文件I/O,即读取、写入和追加文件。我们还将讨论Python工具,这些工具使得操作文件和与操作系统交互成为可能。每个主题都......
  • Python 物联网入门指南(二)
    原文:zh.annas-archive.org/md5/4fe4273add75ed738e70f3d05e428b06译者:飞龙协议:CCBY-NC-SA4.0第三章:使用Python进行自动化和提高生产力在本章中,我们将涵盖以下主题:使用Tkinter创建图形用户界面创建一个图形启动菜单应用程序在应用程序中显示照片信息自动整......