🎯 今日目标
-
掌握
for循环的基本用法 -
学会使用
range()生成数字序列 -
掌握
while循环的用法 -
理解
break和continue的作用 -
避免写出"死循环"
-
能够选择合适的循环解决实际问题
🔁 一、for 循环:遍历序列
当你需要对一组数据中的每个元素做同样的操作 时,用 for 循环。
1.1 遍历字符串
python
for ch in "Python":
print(ch)
运行结果:
text
P
y
t
h
o
n
for 循环会依次取出字符串中的每一个字符,赋值给变量 ch,然后执行缩进的代码块。
1.2 遍历列表
列表是Python中常用的数据类型(后面会详细讲),现在先简单了解它的用法。
python
fruits = ["苹果", "香蕉", "橘子"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
运行结果:
text
我喜欢吃苹果
我喜欢吃香蕉
我喜欢吃橘子
1.3 使用 range() 生成数字序列
range() 是Python内置函数,专门用来生成一系列整数。它有三种用法:
| 用法 | 示例 | 生成的序列 |
|---|---|---|
range(stop) |
range(5) |
0, 1, 2, 3, 4(从0开始,不包含5) |
range(start, stop) |
range(2, 6) |
2, 3, 4, 5(包含start,不包含stop) |
range(start, stop, step) |
range(1, 10, 2) |
1, 3, 5, 7, 9(step是步长) |
示例1:打印0到4
python
for i in range(5):
print(i)
运行结果:
text
0
1
2
3
4
示例2:打印1到5
python
for i in range(1, 6):
print(i)
运行结果:
text
1
2
3
4
5
示例3:打印1,3,5,7,9
python
for i in range(1, 10, 2):
print(i)
运行结果:
text
1
3
5
7
9
示例4:倒序打印10到1
python
for i in range(10, 0, -1):
print(i)
运行结果:
text
10
9
8
7
6
5
4
3
2
1
💡
range(stop)是最常用的,尤其是需要循环固定次数时。注意它从0开始,到stop-1结束。
1.4 计算1到100的总和
python
total = 0
for i in range(1, 101):
total = total + i # 也可以写成 total += i
print(f"1到100的总和是: {total}")
运行结果:
text
1到100的总和是: 5050
💡
total += i是total = total + i的简写,Python 还支持-=、*=、/=等。
🔁 二、while 循环:条件满足时一直执行
当你不知道需要循环多少次,只知道什么时候停止 时,用 while 循环。
2.1 基本语法
python
while 条件:
条件为真时重复执行的代码
只要条件为 True,循环就会一直执行。所以一定要在循环体内改变条件的值,否则会无限循环。
2.2 简单示例:打印1到5
python
i = 1
while i <= 5:
print(i)
i = i + 1 # 或 i += 1
运行结果:
text
1
2
3
4
5
2.3 不断询问用户输入,直到正确为止
python
password = ""
while password != "python123":
password = input("请输入密码: ")
print("密码正确,欢迎进入系统!")
运行过程示例:
text
请输入密码: 123
请输入密码: abc
请输入密码: python123
密码正确,欢迎进入系统!
💡 这个例子展示了
while的经典用法:不知道用户第几次才能输对,所以一直循环直到条件满足。
🛑 三、break:提前结束循环
break 可以立即终止当前所在的循环,不管循环条件是否还满足。
python
# 查找第一个能被7整除的数
for i in range(1, 100):
if i % 7 == 0:
print(f"第一个能被7整除的数是 {i}")
break # 找到后立即退出循环
运行结果:
text
第一个能被7整除的数是 7
如果不加 break,循环会继续检查后面的数,浪费资源。
与 while 结合使用
python
# 猜数字游戏(简化版)
secret = 7
while True: # 无限循环,依靠 break 退出
guess = int(input("猜一个数字(1-10): "))
if guess == secret:
print("恭喜,猜对了!")
break
else:
print("猜错了,再试试")
⚠️
while True是故意制造无限循环,但必须确保里面有break能退出。
⏭️ 四、continue:跳过本次循环,继续下一次
continue 会忽略本次循环中剩余的代码,直接进入下一次循环。
python
# 打印1到10之间的奇数(跳过偶数)
for i in range(1, 11):
if i % 2 == 0:
continue
print(i)
运行结果:
text
1
3
5
7
9
当 i 是偶数时,continue 会跳过 print(i),直接进入下一个 i。
⚠️ 五、避免死循环
死循环 是指条件永远为 True,且没有 break 退出的循环。一旦出现,程序会永远运行下去(只能强制关闭终端)。
错误示例
python
i = 1
while i <= 5:
print(i)
# 忘记写 i = i + 1,所以 i 永远是 1,条件永远为 True
后果 :程序会无限输出 1,直到你按 Ctrl+C 强制终止。
如何避免
-
确保循环条件最终会变为
False -
使用
break时,确保它最终会被执行到 -
不要在应该更新条件的地方写错逻辑
🧪 六、循环嵌套(循环里面套循环)
循环里面可以再写循环,这叫嵌套循环。
打印乘法口诀表
python
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}", end="\t")
print() # 换行
运行结果:
text
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
💡 外层循环
i控制行数,内层循环j控制每行打印的列数。end="\t"让每个结果之间用制表符分隔,而不是换行。
🧪 七、综合示例:猜数字游戏(完整版)
python
import random
# 生成1-100之间的随机数
secret = random.randint(1, 100)
attempts = 0
print("=== 猜数字游戏 ===")
print("我已经想好了一个1-100之间的数字,你猜是多少?")
while True:
guess = int(input("请输入你的猜测: "))
attempts += 1
if guess < secret:
print("太小了,再大一点")
elif guess > secret:
print("太大了,再小一点")
else:
print(f"恭喜!你用了 {attempts} 次猜对了,答案就是 {secret}")
break
运行示例:
text
=== 猜数字游戏 ===
我已经想好了一个1-100之间的数字,你猜是多少?
请输入你的猜测: 50
太小了,再大一点
请输入你的猜测: 75
太大了,再小一点
请输入你的猜测: 62
恭喜!你用了 3 次猜对了,答案就是 62
🐛 八、新手常见错误及解决
| 错误现象 | 错误代码示例 | 解决方法 |
|---|---|---|
| 死循环(程序不停止) | i = 1 while i <= 5: print(i) |
在循环内加上 i += 1 |
for 循环忘记缩进 |
for i in range(5): print(i)(没有缩进) |
在 print 前加4个空格 |
break 或 continue 写在循环外 |
if x > 5: break 但没有循环 |
只能在 for 或 while 循环体内使用 |
range 的结束值理解错误 |
for i in range(5): 以为会输出1-5 |
记住 range(5) 输出 0,1,2,3,4,总共5个数 |
用 = 而不是 == 作为循环条件 |
while x = 5: |
改为 while x == 5: |
| 忘记转换输入类型 | guess = input("数字: ") 然后在循环里和整数比较 |
用 int(input(...)) |
错误演示:死循环
python
count = 0
while count < 3:
print("循环中")
# 忘记 count += 1
按下 Ctrl+C 可以强制终止程序。
正确做法:一定要有改变条件的方式
python
count = 0
while count < 3:
print("循环中")
count += 1 # 不加这行就会死循环
🎯 今日总结
今天你学会了:
-
for循环遍历字符串、列表,以及与range()配合 -
while循环在条件为真时重复执行 -
break提前终止循环,continue跳过本次循环 -
如何避免死循环
-
嵌套循环(循环里套循环)
-
编写了猜数字游戏