Python 的循环语句是编程中最基础、最常用的控制结构之一,主要用于重复执行某段代码。Python 中主要有两种循环:
- for 循环 —— 适合已知次数或遍历序列的场景
- while 循环 —— 适合根据条件决定是否继续的场景
下面从基础到进阶,带你系统掌握 Python 循环语句。
1. for 循环(最常用)
语法
for 临时变量 in 可迭代对象:
循环体(要重复执行的代码)
常见可迭代对象:列表、元组、字符串、range()、集合、字典、文件等。
最经典用法示例
# 1. 遍历列表
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
for fruit in fruits:
print(f"我喜欢吃 {fruit}")
# 2. 用 range() 遍历数字(最常用)
for i in range(5): # 0,1,2,3,4
print(i)
for i in range(1, 10, 2): # 1,3,5,7,9
print(i, end=" ")
# 3. 遍历字符串
for char in "Python":
print(char, end="-") # P-y-t-h-o-n-
带索引的遍历(非常实用)
names = ["张三", "李四", "王五"]
# 方法1:推荐
for idx, name in enumerate(names):
print(f"第 {idx+1} 个人:{name}")
# 方法2:了解即可
for i in range(len(names)):
print(f"第 {i+1} 个人:{names[i]}")
2. while 循环
语法
while 条件表达式:
循环体
特点:只要条件为 True,就一直循环。容易写成死循环,要特别注意退出条件!
经典示例
# 累加 1~100
sum = 0
i = 1
while i <= 100:
sum += i
i += 1
print("1到100的和是:", sum) # 5050
# 猜数字小游戏(简单版)
import random
answer = random.randint(1, 100)
count = 0
while True:
guess = int(input("猜一个1-100的数字:"))
count += 1
if guess > answer:
print("太大了!")
elif guess < answer:
print("太小了!")
else:
print(f"恭喜你!猜对了!用了 {count} 次")
break
3. 循环控制语句(超级重要!)
| 语句 | 作用 | 适用范围 | 是否跳出整个循环 |
|---|---|---|---|
break | 立即结束整个循环 | for / while | 是 |
continue | 跳过本次循环剩余部分,进入下一次循环 | for / while | 否 |
pass | 什么都不做(占位符) | 任何地方 | 否 |
示例对比
print("演示 break")
for i in range(1, 10):
if i == 5:
break
print(i, end=" ") # 输出:1 2 3 4
print("\n演示 continue")
for i in range(1, 10):
if i == 5:
continue
print(i, end=" ") # 输出:1 2 3 4 6 7 8 9
print("\n演示 pass")
for i in range(5):
if i == 3:
pass # 什么都不做,但继续循环
print(i, end=" ") # 输出:0 1 2 3 4
4. 循环中的 else 子句(Python 特色)
for / while 都可以带 else,但含义特殊:
- else 只有在循环“正常结束”(没有被 break 中断)时才会执行
# 查找素数示例(经典用法)
n = 17
for i in range(2, n):
if n % i == 0:
print(f"{n} 不是素数")
break
else:
# 没有被 break 中断,才执行这里
print(f"{n} 是素数!")
# while 也一样
count = 0
while count < 3:
print("hello")
count += 1
else:
print("循环正常结束啦~")
5. 嵌套循环(常见面试题)
# 打印 9×9 乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}×{i}={i*j}", end="\t")
print() # 换行
输出示例:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
...
6. 快速对比表(建议背熟)
| 特性 | for 循环 | while 循环 |
|---|---|---|
| 使用场景 | 遍历序列、已知循环次数 | 条件控制、不确定循环次数 |
| 写法简洁度 | 更高 | 稍复杂 |
| 死循环风险 | 较低(range 通常安全) | 很高(忘记 i+=1 就死循环) |
| 常用控制语句 | break / continue / else | break / continue / else |
| 典型用法 | 遍历列表、range、字典.items() | 游戏循环、输入验证、直到满足条件 |
7. 练习题(建议全部手写一遍)
- 用 for 循环打印 1~100 内所有偶数
- 用 while 求 1~100 的和与平均值
- 打印 1~100 内所有 3 的倍数或 5 的倍数(用 continue 优化)
- 用嵌套循环打印直角三角形(5 行)
- 实现一个猜数字游戏(1~100),记录猜测次数,猜对后显示“用了 X 次”
- 用 for + else 判断一个数是否为质数
循环是 Python 编程的基石,熟练掌握后才能写出高效、可读性强的代码。
有哪部分觉得还不够清楚?或者想看某个具体练习的参考答案?直接告诉我~