8.1 for 循环
能根据特定条件执行一组命令,这很好。但如果我想执行某个动作100次呢?该怎么做?
在 Python 语言中有循环。而对于我们这个任务,循环 for最合适。for的通用格式如下:
for 变量 in 值列表:
命令1
命令1
命令N
这里的 值列表 是一组值:列表、字符串、字典(后面会讲)。
变量依次从 值列表中取值,并对每个值执行命令块。
例子:
| 示例 | 解释 |
|---|---|
|
1. 变量fruit 被赋值为 "apple" 并执行命令 print(fruit ) 2. 变量fruit 被赋值为 "banana" 并执行命令 print(fruit ) 3. 变量fruit 被赋值为 "cherry" 并执行命令 print(fruit ) |
循环是这样工作的:
如果在单词 in 后面的列表中有10个值,那命令块就会执行10次。
对于 值列表 中的每个值,会发生两件事情:
- 循环变量(在
for之后指定的)被依次赋值为列表中的值。 - 然后执行命令块。
再一个例子:
| 示例 | 解释 |
|---|---|
|
循环会打印出数字: 1 2 3 4 5 6 7 8 9 10 |
8.2 指定范围 — range
在最后一个例子中,你可以看到打印10个数字非常简单。但如果我们想执行循环100次呢?或者1000次?
当然有解决方案。在 Python 中,有一个特殊的函数 range(),用来生成数字序列,与循环for结合使用,是一个处理重复任务的强大工具。
函数 range() 可以根据传递给它的参数数量,用几种方式使用。
应用基础 range():
一个参数:range(n) 生成从 0到n-1 的序列。这在需要执行特定次数的操作时很有用。
for i in range(5):
print(i) # 打印0到4
两个参数:range(start, stop) 生成从 start 到 stop-1 的序列。这对于从特定数字开始迭代很有用。
for i in range(1, 6):
print(i) # 打印1到5
三个参数:range(start, stop, step) 添加第三个参数 step,它定义了序列中数字之间的步长。
for i in range(0, 10, 2):
print(i) # 打印0到8的偶数
反向循环:range() 可以生成反向数字序列,用于执行反向迭代。
for i in range(10, 0, -1):
print(i) # 打印10到1
函数 range() 与 for 循环结合使用,为控制循环提供了灵活的工具。理解它的功能有助于创建更高效、更易理解的循环,这对于任何程序都是不可或缺的一部分。
8.3 列表循环
如果你想对不同的值执行一组操作,函数 range() 不适用,那么你可以通过方括号将这些值组合成一个列表。这个操作的通用形式如下:
for 变量 in [val1, val2, …, valN]:
命令1
命令1
命令N
你只需要用逗号分隔列出值,循环会针对每个值执行,变量依次接受每个值。例子:
| 示例 | 解释 |
|---|---|
|
循环会打印出以下字符串: apple banana cherry |
你可以直接在循环中在单词 in 之后指定一个数字列表,例如:
| 示例 | 解释 |
|---|---|
|
循环会打印出数字: 0.99 2.75 0.25 |
在列表中,你可以列出任何类型的对象:
| 示例 | 解释 |
|---|---|
|
循环会打印出以下字符串: 0.99 apple -1 True |
GO TO FULL VERSION