掌握 for 和 while 循环的基本语法与适用场景
理解如何遍历各种数据类型(列表、元组、字符串、字典、集合)
学会使用索引方式遍历序列
掌握嵌套循环的编写方法与执行逻辑
熟练运用 break、continue、pass 控制循环流程
了解无限循环的风险与合理使用方式
循环用于重复执行一段代码,避免冗余,提升效率。Python 提供两类主要循环:
for 循环:适用于已知迭代次数或遍历可迭代对象(如列表、字符串等)
while 循环:适用于基于条件判断的重复执行,次数可能未知
for 循环用于遍历任何可迭代对象(iterable),包括列表、元组、字符串、字典、集合、range 等。
for 变量 in 可迭代对象:
# 执行语句range() 进行计数循环n = 4
for i in range(0, n):
print(i)输出:
0
1
2
3
range(start, stop)生成从start到stop-1的整数序列。
# 列表
li = ["code", "for", "life"]
for x in li:
print(x)
# 元组
tup = ("code", "for", "life")
for x in tup:
print(x)
# 字符串
s = "abc"
for char in s:
print(char)
# 字典(默认遍历键)
d = {'x': 123, 'y': 354}
for key in d:
print(f"{key} {d[key]}")
# 集合(无序)
set1 = {10, 30, 20}
for x in set1:
print(x)输出示例:
code
for
life
code
for
life
a
b
c
x 123
y 354
10
20
30注意:集合和字典的遍历顺序在 Python 3.7+ 中对字典是插入顺序,但集合仍无序。
当需要同时访问元素及其位置时,可结合 range(len(...)):
li = ["code", "for", "life"]
for index in range(len(li)):
print(li[index])更推荐使用
enumerate():
for index, value in enumerate(li):
print(f"Index {index}: {value}")while 循环在条件为真时持续执行,适合不确定循环次数的场景。
while 条件:
# 执行语句cnt = 0
while cnt < 3:
cnt += 1
print("Hello Code")输出:
Hello Code
Hello Code
Hello Code必须确保循环体内有改变条件的语句,否则可能导致无限循环。
while True:
user_input = input("输入 'quit' 退出: ")
if user_input == 'quit':
break
print("继续运行...")警告:纯
while True若无退出机制将导致程序卡死,需谨慎使用。
在一个循环内部包含另一个循环,常用于处理二维结构或多层逻辑。
for i in range(1, 5):
for j in range(i):
print(i, end=' ')
print() # 换行输出:
1
2 2
3 3 3
4 4 4 4 for 内嵌 while
while 内嵌 for
多层任意组合
i = 1
while i <= 3:
for j in range(i):
print("*", end="")
print()
i += 1输出:
*
**
***用于在循环中改变正常执行流程。
continue:跳过当前迭代for letter in 'codeforgeeks':
if letter == 'e' or letter == 'o':
continue
print('Current Letter :', letter)输出:
Current Letter : c
Current Letter : d
Current Letter : f
Current Letter : r
Current Letter : g
Current Letter : k
Current Letter : s用途:过滤特定元素,继续后续处理。
break:立即退出整个循环for letter in 'codeforgeeks':
if letter == 'e' or letter == 'o':
break
print('Current Letter :', letter)输出:
Current Letter : c注意:
break仅退出最内层循环。
pass:空操作占位符for letter in 'codeforgeeks':
pass # 什么都不做,但语法合法
print('Last Letter :', letter) # 输出 's'用途:
占位,预留未来代码
满足语法要求(如空函数、类、循环)
for 循环用于遍历可迭代对象,简洁高效。
while 循环基于条件执行,需注意避免无限循环。
嵌套循环可处理多维逻辑,但应控制深度。
break 立即退出循环,continue 跳过本次迭代,pass 是空操作。
遍历字典时,使用 .keys()、.values() 或 .items() 更清晰。
修改容器时避免在遍历过程中直接增删元素。
以下代码输出什么?为什么?
for i in range(3):
for j in range(3):
if i == j:
break
print(i, j)如何用 while 循环实现 for i in range(5): print(i) 的功能?
在什么情况下,使用 while 比 for 更合适?请举一个实际编程场景的例子。