
python的`range()`函数在默认情况下生成一个左闭右开的序列,即不包含结束值。本文将详细讲解如何通过简单地将`range()`函数的结束参数加一来,实现包含结束值(即闭区间)的迭代。通过具体的代码示例,您将学会如何修改循环逻辑,确保序列中的最后一个数字也能被正确处理,从而满足在数值范围内进行完整检查的需求。
在Python中,range()函数是一个非常常用的内置函数,用于生成一个整数序列。它通常有三种用法:
核心特性是:stop值是排他性的,即序列不包含stop本身。
例如,range(1, 5)会生成序列1, 2, 3, 4。这个特性在很多场景下非常方便,但在某些需要包含结束值的场景中,新手可能会遇到困惑。
考虑以下场景:您需要从用户那里获取两个数字,然后检查这两个数字之间(包括这两个数字)的所有整数,找出其中的偶数。
立即学习“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。
这样,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被正确地包含在了偶数列表中,符合预期。
通过理解range()函数的默认行为并掌握stop + 1的技巧,您可以更灵活、准确地控制循环的迭代范围,编写出更符合逻辑和需求的Python代码。
以上就是Python range() 函数:实现闭区间迭代的实用指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号