杰瑞科技汇

Python for循环中range函数怎么用?

for 循环简介

for 循环用于遍历任何可迭代对象(如列表、元组、字典、集合、字符串等),并对其中的每个元素执行一次相同的操作。

它的基本语法结构是:

for variable in iterable:
    # 循环体
    # 这里的代码会针对 iterable 中的每个元素执行一次
  • variable:一个临时变量,用来接收在每次循环中从 iterable 中取出的元素。
  • in:关键字,用于分隔变量和可迭代对象。
  • iterable:任何可以逐个提供元素的对象,比如一个列表 [1, 2, 3]
  • 冒号,表示代码块的开始。
  • 缩进:循环体内的所有代码都必须缩进(通常是 4 个空格),这是 Python 语法的要求。

简单示例:遍历列表

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(f"I like to eat {fruit}")

输出:

I like to eat apple
I like to eat banana
I like to eat cherry

在这个例子中,for 循环依次从 fruits 列表中取出 "apple", "banana", "cherry",并将它们赋值给变量 fruit,然后执行缩进内的 print 语句。


range() 函数详解

range() 函数本身不是一个列表,而是一个不可变的数字序列类型,它通常与 for 循环结合使用,用来生成一个整数序列,从而控制循环的次数。

range() 函数主要有三种用法:

a) range(stop) - 最常用

只提供一个参数 stop,生成的序列是从 0 开始,到 stop - 1 结束。

  • 语法: range(stop)
  • 生成的序列: 0, 1, 2, ..., stop-1

示例:打印 0 到 4

for i in range(5):
    print(i)

输出:

0
1
2
3
4

注意:range(5) 生成的是 0, 1, 2, 3, 4不包含 5

b) range(start, stop) - 指定范围

提供两个参数 startstop,生成的序列是从 start 开始,到 stop - 1 结束。

  • 语法: range(start, stop)
  • 生成的序列: start, start+1, start+2, ..., stop-1

示例:打印 5 到 9

for i in range(5, 10):
    print(i)

输出:

5
6
7
8
9

c) range(start, stop, step) - 指定步长

提供三个参数 start, stop, 和 stepstep 是步长,即每次循环数字增加的值。

  • 语法: range(start, stop, step)
  • 生成的序列: start, start+step, start+2*step, ...,直到小于 stop (step 为正) 或大于 stop (step 为负)。

示例 1:打印 0 到 10 的偶数 (步长为 2)

for i in range(0, 11, 2):  # 11 是 stop,所以会包含 10
    print(i)

输出:

0
2
4
6
8
10

示例 2:倒序打印 (步长为 -1)

# 从 10 开始,到 1 结束,每次减 1
for i in range(10, 0, -1):
    print(i)

输出:

10
9
8
7
6
5
4
3
2
1

range() 的高级技巧

a) 将 range 转换为列表

range() 对象是惰性的,只有在需要时才会生成数字,如果你想看到它包含的所有数字,可以将其转换为列表 list()

number_list = list(range(1, 6))
print(number_list)

输出:

[1, 2, 3, 4, 5]

b) 结合 len() 遍历列表索引

如果你需要同时获取列表的索引,一个经典的方法是结合 range()len()

fruits = ["apple", "banana", "cherry"]
# len(fruits) 返回 3, range(3) 生成 0, 1, 2
for i in range(len(fruits)):
    print(f"索引 {i}: {fruits[i]}")

输出:

索引 0: apple
索引 1: banana
索引 2: cherry

注意:虽然这种方法可行,但在 Python 中,使用 enumerate() 函数是更 Pythonic(更优雅)的方式。

c) 更 Pythonic 的方式:enumerate()

enumerate() 函数可以同时返回索引和元素,代码更清晰易读。

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"索引 {index}: {fruit}")

输出与上面完全相同enumerate() 是处理需要索引的循环时的首选。


总结与最佳实践

用法 range() 语法 生成的序列 示例
指定次数 range(n) 0, 1, ..., n-1 for i in range(5):
指定范围 range(start, stop) start, start+1, ..., stop-1 for i in range(2, 7):
指定步长 range(start, stop, step) start, start+step, ... for i in range(0, 10, 2):

核心要点:

  1. for 循环:用于遍历任何序列(列表、字符串等)。
  2. range():用于生成一个数字序列,常用于控制循环次数。
  3. range() 的上限是 不包含 的。range(5)4 就结束了。
  4. 当需要索引和值时,优先使用 enumerate() 而不是 range(len(...))

希望这个详细的解释能帮助你完全理解 Python 中的 for 循环和 range() 函数!

分享:
扫描分享到社交APP
上一篇
下一篇