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