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

Day52:range()函数

在 Python 中,range() 是一个内置函数,用于生成一系列数字,通常用于循环结构中。它非常适合用于生成指定范围内的整数序列,并且支持步长控制,常用于 for 循环中。

今天我们将学习如何使用 range() 函数,并了解其常见用法。

1. range() 函数的基本用法

range() 函数可以生成一个整数序列,这些整数可以用来遍历。它的基本语法是:

range(start, stop, step)
  • start:序列的起始值,默认为 0。
  • stop:序列的结束值(不包括该值)。
  • step:序列中数字之间的步长,默认为 1。
示例:
# 生成从 0 到 4 的数字序列
for i in range(5):
    print(i)

输出:

0
1
2
3
4

在上面的例子中,range(5) 表示生成从 0 到 4 的整数序列,默认步长为 1。

2. 使用 startstop 参数

你可以通过指定 startstop 参数来控制生成的序列的范围。

示例:
# 生成从 3 到 7 的数字序列
for i in range(3, 8):
    print(i)

输出:

3
4
5
6
7

range(3, 8) 会生成从 3 到 7(不包括 8)的整数序列。

3. 使用 step 参数

通过 step 参数,你可以控制序列中数字之间的间隔。默认为 1,但你可以指定其他值。

示例:
# 生成从 0 到 9 的偶数序列
for i in range(0, 10, 2):
    print(i)

输出:

0
2
4
6
8

在这个例子中,range(0, 10, 2) 生成从 0 到 9 的偶数序列,步长为 2。

4. 使用负数步长

range() 函数也支持负数步长,用于生成递减的序列。当 step 为负数时,start 应该大于 stop,否则序列将为空。

示例:
# 生成从 10 到 1 的倒序序列
for i in range(10, 0, -1):
    print(i)

输出:

10
9
8
7
6
5
4
3
2
1

range(10, 0, -1) 生成从 10 到 1 的倒序序列,步长为 -1。

5. range() 返回的是一个迭代器

需要注意的是,range() 返回的是一个迭代器,而不是一个列表。这意味着它不会立即生成所有的数字,而是按需生成数字,这可以节省内存。当你需要将它转换为列表时,可以使用 list() 函数。

示例:
# 将 range 对象转换为列表
numbers = list(range(5))
print(numbers)

输出:

[0, 1, 2, 3, 4]

6. 小结

  • range() 函数是生成一系列数字的常用工具,常用于循环。
  • 它可以接受 startstopstep 参数,允许灵活控制数字序列。
  • range() 返回的是一个可迭代对象,通常在 for 循环中使用,但可以转换为列表。

7. 课后练习

练习 1:使用 range() 生成 0 到 9 的数字序列

使用 range() 生成 0 到 9 的数字序列,并将其打印出来。

练习 2:使用 range() 生成 5 到 15 的奇数序列

使用 range() 生成一个从 5 到 15 的奇数序列,步长为 2,并打印每个数字。

练习 3:使用 range() 创建一个倒序序列

使用 range() 创建一个从 20 到 10 的倒序序列,并打印每个数字。

练习 4:将 range() 对象转换为列表

使用 range(0, 20, 5) 创建一个序列,然后将该序列转换为列表并打印出来。

练习 5:使用 range() 计算数字总和

使用 range() 函数计算 1 到 100 的数字总和。


http://www.kler.cn/a/527208.html

相关文章:

  • CAPL与外部接口
  • 游戏开发领域 - 游戏引擎 UE 与 Unity
  • P1044 [NOIP2003 普及组] 栈 C语言
  • .NET MAUI进行UDP通信(二)
  • 【安全测试】测开方向学习遇到的问题记录
  • Haproxy入门学习二
  • 精准化糖尿病知识问答(LLM+机器学习预测模型)
  • ELK模块封装starter
  • 数据结构初探: 顺序表
  • Mysql的主从复制及扩展功能
  • 代发考试战报:1月22号 1月23号 CCDE考试通过
  • 深入解析JUnit中的@ClassRule注解
  • 代码随想录算法训练营第十五天| 二叉树3
  • Python-操作列表
  • 38【2进制与ascall码】
  • 今日头条公域流量引流新径:开源 AI 智能名片 2 + 1 链动模式 S2B2C 商城小程序融合之道
  • 【C++语言】卡码网语言基础课系列----2. A+B问题II
  • 【漫话机器学习系列】072.异常处理(Handling Outliers)
  • 算法题(53):对称二叉树
  • 基于PLC的变频调速系统设计
  • 鸿蒙HarmonyOS实战-ArkUI动画(页面转场动画)_鸿蒙arkui tab 切换动画
  • K8S学习笔记
  • PDF 擦除工具
  • 【Leetcode 热题 100】62. 不同路径
  • “LoRA技术中参数初始化策略:为何A参数采用正态分布而B参数初始化为0”
  • 解锁维特比算法:探寻复杂系统的最优解密码