0

0

Python range() 函数:实现闭区间迭代的实用指南

聖光之護

聖光之護

发布时间:2025-11-18 12:08:24

|

503人浏览过

|

来源于php中文网

原创

Python range() 函数:实现闭区间迭代的实用指南

python的`range()`函数在默认情况下生成一个左闭右开的序列,即不包含结束值。本文将详细讲解如何通过简单地将`range()`函数的结束参数加一来,实现包含结束值(即闭区间)的迭代。通过具体的代码示例,您将学会如何修改循环逻辑,确保序列中的最后一个数字也能被正确处理,从而满足在数值范围内进行完整检查的需求。

理解 Python range() 函数的基本行为

在Python中,range()函数是一个非常常用的内置函数,用于生成一个整数序列。它通常有三种用法:

  • range(stop):生成从0到stop-1的序列。
  • range(start, stop):生成从start到stop-1的序列。
  • range(start, stop, step):生成从start到stop-1,步长为step的序列。

核心特性是:stop值是排他性的,即序列不包含stop本身。

例如,range(1, 5)会生成序列1, 2, 3, 4。这个特性在很多场景下非常方便,但在某些需要包含结束值的场景中,新手可能会遇到困惑。

遇到的问题:range() 函数的排他性

考虑以下场景:您需要从用户那里获取两个数字,然后检查这两个数字之间(包括这两个数字)的所有整数,找出其中的偶数。

立即学习Python免费学习笔记(深入)”;

假设用户输入了5和10,您期望的偶数列表是[6, 8, 10]。然而,如果使用如下代码:

counter = list(range(2))
numbers = []

for n in counter:
    numbers.append(int(input("Enter the number: ")))
numbers.sort()

print("Range of numbers: ", numbers)

even_num = []

# 原始代码:使用 range(numbers[0], numbers[1])
for n in range(numbers[0], numbers[1]):
    if n == 0:
        pass # 或者直接 continue
    elif n % 2 == 0:
        even_num.append(n)
    # else:
    #     pass # 对于奇数,不做任何操作

print("Even numbers: ", even_num)

当输入5和10时,numbers列表将是[5, 10]。此时,range(numbers[0], numbers[1])实际上是range(5, 10)。根据range()函数的排他性,它会生成序列5, 6, 7, 8, 9。因此,最终输出的偶数列表将是[6, 8],缺少了期望的10。

解决方案:实现闭区间迭代

要解决range()函数不包含结束值的问题,方法非常简单直观:将range()函数的第二个参数(即stop值)加1。

绘蛙-多图成片
绘蛙-多图成片

绘蛙新推出的AI图生视频工具

下载

这样,range(start, stop + 1)将生成从start到stop的序列,从而实现闭区间迭代。

将上述代码中的循环部分修改为:

# 修改后的代码:使用 range(numbers[0], numbers[1] + 1)
for n in range(numbers[0], numbers[1] + 1):
    if n == 0:
        pass
    elif n % 2 == 0:
        even_num.append(n)

让我们用完整的修改后代码来演示:

# 获取用户输入的两个数字
numbers_input = []
for _ in range(2): # 循环两次获取两个数字
    numbers_input.append(int(input("Enter the number: ")))
numbers_input.sort() # 确保 numbers[0] 是较小值,numbers[1] 是较大值

start_range = numbers_input[0]
stop_range = numbers_input[1]

print("Range of numbers: ", numbers_input)

even_num = []

# 核心修改:将 stop_range 加 1,实现闭区间迭代
for n in range(start_range, stop_range + 1):
    # 检查数字是否为偶数
    if n % 2 == 0:
        even_num.append(n)

print("Even numbers: ", even_num)

使用示例输入5和10运行修改后的代码:

Enter the number: 5
Enter the number: 10
Range of numbers:  [5, 10]
Even numbers:  [6, 8, 10]

现在,10被正确地包含在了偶数列表中,符合预期。

注意事项与总结

  1. 适用性广泛: 这种stop + 1的技巧不仅适用于简单的range(start, stop),也适用于带有步长的range(start, stop, step)。只要您希望迭代包含stop值,就可以使用这个方法。
  2. 清晰性: 在代码中明确地使用+ 1可以清晰地表达您的意图,即包含结束值。
  3. 负数步长: 如果使用负数步长(例如range(10, 0, -1)),并且希望包含结束值,则需要将stop值减1(例如range(10, 0 - 1, -1),即range(10, -1, -1))。但这种情况相对少见,且需要根据具体逻辑判断。
  4. 替代方案: 对于需要精确控制序列的场景,也可以考虑使用列表推导式或while循环,但对于简单的数值序列,range()函数配合+ 1是最简洁高效的方法。

通过理解range()函数的默认行为并掌握stop + 1的技巧,您可以更灵活、准确地控制循环的迭代范围,编写出更符合逻辑和需求的Python代码。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

749

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

635

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

758

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1262

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

706

2023.08.11

PHP 表单处理与文件上传安全实战
PHP 表单处理与文件上传安全实战

本专题聚焦 PHP 在表单处理与文件上传场景中的实战与安全问题,系统讲解表单数据获取与校验、XSS 与 CSRF 防护、文件类型与大小限制、上传目录安全配置、恶意文件识别以及常见安全漏洞的防范策略。通过贴近真实业务的案例,帮助学习者掌握 安全、规范地处理用户输入与文件上传的完整开发流程。

5

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 3万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号