一、for 循环
用于遍历可迭代对象(如列表、元组、字符串、字典等)。
1. 基本语法
for 变量 in 可迭代对象:
# 循环体
代码块
#变量:是一个通用的占位符,告诉你在编写循环时需要定义一个变量来接收可迭代对象中的元素。
示例:遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
# 输出:apple, banana, cherry
#含义:fruit 是一个临时变量,用于在每次循环中存储列表 fruits 中的当前元素
2. 遍历字符串
for char in "hello":
print(char)
# 输出:h, e, l, l, o
#python字符类型为 str (相当于C语言中的char)
3. 遍历字典
(字典类似于C语言中的结构体,不会可以去AI单独搜一下字典,对照结构体理解)
默认遍历字典的键:
person = {"name": "Alice", "age": 30}
for key in person:
print(key, person[key])
# 输出:name Alice, age 30
4. 使用 range() 函数
生成整数序列:(不知道这个函数的先看下面解释)
# 遍历 0 到 4
for i in range(5):
print(i)
# 遍历 2 到 6(不包含 7)
for i in range(2, 7):
print(i)
# 遍历 1 到 10,步长为 2
for i in range(1, 11, 2):
print(i) # 输出:1, 3, 5, 7, 9
首先解释一下range()函数
4.1基本语法(重点)
range(stop) # 从 0 开始,到 stop-1 结束
range(start, stop) # 从 start 开始,到 stop-1 结束
range(start, stop, step) # 从 start 开始,到 stop-1 结束,步长为 step
参数说明:
start(可选):起始值(包含),默认为0。stop(必选):结束值(不包含)。step(可选):步长(每次增加的值),默认为1,可以为负数(表示递减)。
4.2使用示例
4.2.1 生成从 0 到 n-1 的序列
for i in range(5):
print(i) # 输出:0, 1, 2, 3, 4
4.2.2 指定起始值和结束值
for i in range(2, 7):
print(i) # 输出:2, 3, 4, 5, 6
4.2.3 指定步长
for i in range(1, 10, 2):
print(i) # 输出:1, 3, 5, 7, 9(奇数序列)
4.2.4递减序列(负步长)
for i in range(5, 0, -1):
print(i) # 输出:5, 4, 3, 2, 1
4.3转换为列表
range() 返回的是一个可迭代对象(range 对象),可以通过 list() 转换为列表:
numbers = list(range(1, 6))
print(numbers) # 输出:[1, 2, 3, 4, 5]
4.4主要特性
- 不可变性:
range对象是不可变的,生成后不能修改。 - 高效性:即使生成很大的范围,也只占用很小的内存,因为它是惰性计算的(按需生成值)。
- 可迭代性:可以直接用于
for循环,或通过iter()和next()迭代。
4.5常见应用场景
-
循环固定次数:
for _ in range(3): print("Hello!") # 输出三次 "Hello!" -
遍历列表索引:
fruits = ["apple", "banana", "cherry"] for i in range(len(fruits)): print(f"Index {i}: {fruits[i]}") #实际输出 # Index 0: apple # Index 1: banana # Index 2: cherry -
even_numbers = list(range(0, 10, 2)) # [0, 2, 4, 6, 8]
二、while 循环
在条件为真时重复执行代码块。
1. 基本语法
while 条件:
# 循环体
代码块
# 更新条件(避免无限循环)
示例:计算 1 到 10 的和
sum = 0
i = 1
while i <= 10:
sum += i
i += 1
print(sum) # 输出:55
2. 无限循环
需谨慎使用,确保有退出条件:
while True:
user_input = input("输入 'q' 退出:")
if user_input == 'q':
break # 跳出循环
三、循环控制关键字
1. break
立即终止整个循环,跳出循环体:
for i in range(10):
if i == 5:
break
print(i) # 输出:0, 1, 2, 3, 4
2. continue
跳过当前循环的剩余代码,直接进入下一次循环:
for i in range(10):
if i % 2 == 0:
continue # 跳过偶数
print(i) # 输出:1, 3, 5, 7, 9
3. else 子句
在所有循环结束后的最后执行,循环正常结束时执行(若被 break 终止则不执行):
for i in range(5):
print(i)
else:
print("循环结束") # 会执行
#实际输出结果
# 0
# 1
# 2
# 3
# 4
# 循环结束
for i in range(5):
if i == 3:
break
print(i)
else:
print("循环结束") # 不会执行
#实际输出结果
# 0
# 1
# 2
四、嵌套循环
在循环内部嵌套另一个循环,常用于处理多维数据:
# 打印乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}", end="\t")
print()
#看不懂print()函数里面没关系 博主会单出一个print()函数的讲解
五、循环技巧
1. 同时获取索引和值:enumerate()
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)
# 输出:0 apple, 1 banana, 2 cherry
2. 并行遍历多个序列:zip()
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"{name} 年龄是 {age}")
#实际输出为
# Alice 年龄是 25
# Bob 年龄是 30
# Charlie 年龄是 35
3. 反向遍历:reversed()
for i in reversed(range(5)):
print(i) # 输出:4, 3, 2, 1, 0
4. 排序后遍历:sorted()
for num in sorted([3, 1, 4]):
print(num) # 输出:1, 3, 4
总结
| 循环类型 | 适用场景 | 示例 |
|---|---|---|
for 循环 | 遍历可迭代对象(列表、字符串等) | for item in items: print(item) |
while 循环 | 基于条件重复执行 | while condition: 代码块 |
break | 终止整个循环 | if ...: break |
continue | 跳过当前循环 | if ...: continue |
else 子句 | 循环正常结束时执行 | for ...: ... else: ... |
合理使用循环和控制语句可以高效处理重复性任务,避免代码冗余。
2475

被折叠的 条评论
为什么被折叠?



