知识点概述
for, while, range()
学习如何使用循环重复执行代码,这是自动化处理数据和实现复杂逻辑的基础。
详细讲解
循环结构
循环结构允许程序重复执行某些代码块,是编程中的重要概念。
for循环:
for循环用于遍历序列(如列表、字符串)或可迭代对象。
- 遍历列表:
for item in list: - 遍历字符串:
for char in "Python": - 遍历字典键:
for key in dict: - 遍历字典键值对:
for key, value in dict.items():
while循环:
while循环在条件为真时重复执行代码块。
- 基本语法:
while 条件: - 注意:需要有改变条件的语句,否则会进入无限循环
- 适用于不知道具体循环次数的情况
- 常用于游戏循环、用户输入验证等场景
range()函数:
range()函数生成一个数字序列,常用于for循环。
range(5):生成0到4range(1, 6):生成1到5range(0, 10, 2):生成0,2,4,6,8range(10, 0, -1):生成10到1的递减序列
循环控制语句:
break:立即退出当前循环continue:跳过当前循环的剩余语句,继续下一次循环pass:空语句,什么都不做,用于占位else:循环正常结束后执行的代码(没有遇到break时)
嵌套循环:
一个循环包含在另一个循环中,常用于处理二维数据。
# 打印3x3矩阵
for i in range(3):
for j in range(3):
print(f"({i},{j})", end=" ")
print()
代码示例
loops.py
# 循环结构示例
# for循环 - 遍历列表
fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"]
print("水果列表:")
for fruit in fruits:
print(f" - {fruit}")
# for循环 - 使用range()
print("\n数字1到10:")
for i in range(1, 11):
print(i, end=" ")
print() # 换行
print("\n10以内的偶数:")
for i in range(2, 11, 2):
print(i, end=" ")
print()
# while循环
print("\nwhile循环示例:")
count = 0
while count < 5:
print(f"计数: {count}")
count += 1
# 循环控制语句
print("\n循环控制语句:")
for i in range(10):
if i == 3:
print("跳过3")
continue # 跳过3
if i == 7:
print("遇到7,退出循环")
break # 当i等于7时退出循环
print(f"当前数字: {i}")
# 嵌套循环
print("\n嵌套循环 - 乘法表:")
for i in range(1, 4): # 外层循环
for j in range(1, 4): # 内层循环
print(f"{i} × {j} = {i * j}", end="\t")
print() # 换行
# else子句
print("\n循环的else子句:")
for i in range(5):
print(i)
else:
print("循环正常结束,没有遇到break")
# 无限循环示例
print("\n模拟用户输入(按q退出):")
# 实际运行时注释掉这部分,以免真的进入无限循环
"""
while True:
user_input = input("请输入命令 (q退出): ")
if user_input.lower() == 'q':
print("退出程序")
break
print(f"你输入了: {user_input}")
"""
输出结果:
水果列表: - 苹果 - 香蕉 - 橙子 - 葡萄 - 草莓 数字1到10: 1 2 3 4 5 6 7 8 9 10 10以内的偶数: 2 4 6 8 10 while循环示例: 计数: 0 计数: 1 计数: 2 计数: 3 计数: 4 循环控制语句: 当前数字: 0 当前数字: 1 当前数字: 2 跳过3 当前数字: 4 当前数字: 5 当前数字: 6 遇到7,退出循环 嵌套循环 - 乘法表: 1 × 1 = 1 1 × 2 = 2 1 × 3 = 3 2 × 1 = 2 2 × 2 = 4 2 × 3 = 6 3 × 1 = 3 3 × 2 = 6 3 × 3 = 9 循环的else子句: 0 1 2 3 4 循环正常结束,没有遇到break 模拟用户输入(按q退出): (这部分代码被注释,不会实际运行)
学习提示
1
注意避免无限循环,确保循环条件最终会变为False。
2
range()函数生成的序列不包含结束值。
3
使用enumerate()可以同时获取索引和值。
4
break只能跳出当前循环,不能跳出多层嵌套循环。
练习题
练习 1
中等
使用for循环输出1到100之间所有偶数的和。
使用range(2, 101, 2)生成偶数,用变量累加求和。
练习 2
中等
使用while循环实现猜数字游戏。
使用random模块生成随机数,用while循环直到猜对为止。
练习 3
困难
编写程序打印一个直角三角形图案(使用*号)。
使用嵌套循环,外层控制行数,内层控制每行星号数量。
练习 4
困难
计算一个列表中所有正数的平均值。
遍历列表,只对正数进行累加和计数。
知识点总结
本课要点:
- 掌握for循环遍历序列和range()序列
- 理解while循环的条件控制
- 熟练使用break和continue控制循环流程
- 了解嵌套循环的工作原理