知识点概述

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到4
  • range(1, 6):生成1到5
  • range(0, 10, 2):生成0,2,4,6,8
  • range(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控制循环流程
  • 了解嵌套循环的工作原理

下一课预告:

在下一课中,我们将学习函数定义,了解如何封装可重用的代码块。

预览下一课