Python3 循环语句知识点汇总
编程小白的全方位指南 – 通俗易懂的大白话讲解
循环是编程中最重要的概念之一,就像重复做某件事情一样。在Python中,主要有两种循环:for循环和while循环。本指南将用最通俗的语言解释这些概念,并附上大量示例。
1. 循环的基本概念
什么是循环?
循环就是让计算机重复执行某段代码多次,就像你重复做家务一样。
大白话解释: 想象你在抄写课文10遍,每次抄写都是相同的动作,只是次数不同。计算机循环也是类似,告诉计算机:”把这个操作重复做X次”。
为什么需要循环?
- 避免写重复的代码
- 处理大量相似的任务
- 遍历列表、字典等数据结构
- 执行重复计算
💡 小贴士: 循环是编程中最重要的概念之一。几乎每个程序都会用到循环!
2. for循环
什么是for循环?
当你确切知道需要重复多少次时,使用for循环。比如遍历一个列表的所有元素。
基本结构:
for 变量 in 序列:
# 要重复执行的代码
# 要重复执行的代码
遍历数字序列:range()函数
range()函数生成一个数字序列,常用于for循环:
# 打印0到4的数字
for i in range(5):
print(i) # 输出0,1,2,3,4
for i in range(5):
print(i) # 输出0,1,2,3,4
# 从2开始到10结束(不包括10),步长为2
for i in range(2, 10, 2):
print(i) # 输出2,4,6,8
for i in range(2, 10, 2):
print(i) # 输出2,4,6,8
遍历列表
fruits = [“苹果”, “香蕉”, “橙子”]
for fruit in fruits:
print(fruit)
for fruit in fruits:
print(fruit)
⚠️ 注意: 在for循环中,不要修改正在遍历的列表!这可能导致意外结果。
3. while循环
什么是while循环?
当你不确定需要循环多少次,而是根据条件判断时,使用while循环。
基本结构:
while 条件:
# 条件为真时重复执行的代码
# 条件为真时重复执行的代码
基本示例
# 计数器从1到5
count = 1
while count <= 5:
print(count)
count += 1 # 等同于 count = count + 1
count = 1
while count <= 5:
print(count)
count += 1 # 等同于 count = count + 1
用户输入控制循环
# 当用户输入’quit’时退出循环
message = “”
while message != “quit”:
message = input(“请输入消息(输入quit退出): “)
print(f”你输入了: {message}”)
message = “”
while message != “quit”:
message = input(“请输入消息(输入quit退出): “)
print(f”你输入了: {message}”)
⚠️ 重要警告: 如果条件永远为真,while循环会一直运行下去,成为”死循环”。要确保循环条件最终会变为假!
4. 循环控制语句
break语句
立即退出整个循环,不再执行循环中剩余的代码
# 找到第一个大于10的数字就停止
numbers = [5, 8, 12, 3, 15, 7]
for num in numbers:
if num > 10:
print(f”找到第一个大于10的数: {num}”)
break # 跳出循环
print(num) # 只打印小于等于10的数字
numbers = [5, 8, 12, 3, 15, 7]
for num in numbers:
if num > 10:
print(f”找到第一个大于10的数: {num}”)
break # 跳出循环
print(num) # 只打印小于等于10的数字
continue语句
跳过当前循环的剩余语句,直接进入下一次循环
# 只打印奇数
for num in range(10):
if num % 2 == 0: # 如果偶数
continue # 跳过这次循环
print(num) # 只打印奇数:1,3,5,7,9
for num in range(10):
if num % 2 == 0: # 如果偶数
continue # 跳过这次循环
print(num) # 只打印奇数:1,3,5,7,9
💡 记忆技巧:
break = 彻底休息(退出循环)
continue = 跳过这次,继续下次
5. 循环的else子句
什么是循环的else?
else在循环完成后执行,但如果循环被break终止,else不会执行。
基本结构:
for 变量 in 序列:
# 循环代码
else:
# 循环正常结束后执行的代码
# 循环代码
else:
# 循环正常结束后执行的代码
实际应用:搜索元素
numbers = [2, 4, 6, 8, 10]
for num in numbers:
if num == 5:
print(“找到了5”)
break
else:
print(“没有找到5”) # 因为没执行break,所以会执行
for num in numbers:
if num == 5:
print(“找到了5”)
break
else:
print(“没有找到5”) # 因为没执行break,所以会执行
💡 使用场景: 当你需要知道循环是正常结束还是被break中断时,else子句特别有用。
6. 嵌套循环
什么是嵌套循环?
一个循环里面包含另一个循环,就像时钟的时针、分针和秒针的关系。
基本结构:
for i in range(3): # 外层循环
print(f”外层循环: {i}”)
for j in range(2): # 内层循环
print(f” 内层循环: {j}”)
print(f”外层循环: {i}”)
for j in range(2): # 内层循环
print(f” 内层循环: {j}”)
打印乘法表
# 打印9×9乘法表
for i in range(1, 10): # 控制行
for j in range(1, i+1): # 控制列
print(f”{j}×{i}={i*j}”, end=”\t”) # 制表符分隔
print() # 换行
for i in range(1, 10): # 控制行
for j in range(1, i+1): # 控制列
print(f”{j}×{i}={i*j}”, end=”\t”) # 制表符分隔
print() # 换行
⚠️ 性能注意: 嵌套循环的层数越多,执行次数呈指数级增长。三层循环通常就是极限了!
for循环 vs while循环 对比表
特点 | for循环 | while循环 |
---|---|---|
使用场景 | 遍历已知序列(列表、字符串等)或已知循环次数 | 根据条件判断循环,次数不确定 |
循环控制 | 通过序列元素或range()控制 | 通过条件表达式控制 |
是否需要计数器 | 不需要,自动遍历 | 通常需要自己管理计数器 |
死循环风险 | 低(除非序列无限) | 高(需确保条件最终为假) |
典型应用 | 遍历数据集合、固定次数操作 | 用户输入验证、游戏主循环、等待状态改变 |
综合应用示例
示例1:统计学生成绩
# 创建一个学生成绩字典
scores = {“小明”: 85, “小红”: 92, “小刚”: 78, “小丽”: 95}
# 使用for循环遍历字典
total = 0
for name, score in scores.items():
print(f”{name}的成绩是: {score}”)
total += score
average = total / len(scores)
print(f”平均成绩是: {average:.2f}”) # 保留两位小数
scores = {“小明”: 85, “小红”: 92, “小刚”: 78, “小丽”: 95}
# 使用for循环遍历字典
total = 0
for name, score in scores.items():
print(f”{name}的成绩是: {score}”)
total += score
average = total / len(scores)
print(f”平均成绩是: {average:.2f}”) # 保留两位小数
示例2:猜数字游戏
import random
# 生成1-100的随机数
secret = random.randint(1, 100)
attempts = 0
while True:
guess = int(input(“猜一个1-100的数字: “))
attempts += 1
if guess < secret:
print(“太小了,再试试!”)
elif guess > secret:
print(“太大了,再试试!”)
else:
print(f”恭喜!你在{attempts}次尝试后猜对了!”)
break # 猜对后退出循环
# 生成1-100的随机数
secret = random.randint(1, 100)
attempts = 0
while True:
guess = int(input(“猜一个1-100的数字: “))
attempts += 1
if guess < secret:
print(“太小了,再试试!”)
elif guess > secret:
print(“太大了,再试试!”)
else:
print(f”恭喜!你在{attempts}次尝试后猜对了!”)
break # 猜对后退出循环