4. 分支和循环:if判断语句、运算符、if-else语句、while循环、for循环、break、continue
写代码说白了就是让计算机替我们做决定、重复干活。分支和循环,就是实现这两件事的核心工具。我个人觉得,这两个概念一旦搞明白,Python 的大门就算真正推开了。
4.1 运算符:判断的基础
在讲 if 之前,得先聊聊运算符。因为判断离不开它们。
运算符分几类,我挑最常用的说:
- 比较运算符:
==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于) - 逻辑运算符:
and(与)、or(或)、not(非) - 成员运算符:
in、not in(判断某个值是否在序列里)
举个例子:
age = 18
print(age >= 18) # True
print(age == 20) # False
print(age > 15 and age < 30) # True
嗯,这里要注意:== 是判断相等,= 是赋值。我见过不少新手在这翻车,包括我自己刚学的时候也犯过。
4.2 if 判断语句:让代码有脑子
if 语句,说白了就是「如果……就……」。语法很简单:
if 条件:
执行代码
注意那个冒号,还有缩进。Python 靠缩进来区分代码块,这是它的特色,也是新手最容易踩的坑。
来个实际例子:
score = 85
if score >= 60:
print("及格了")
我在项目中遇到过一个问题:用户输入的成绩是字符串,直接跟数字比较会报错。所以记得先转类型:int(score)。
4.3 if-else 语句:两条路
光有 if 不够,有时候需要「如果……否则……」。这时候用 if-else:
score = 45
if score >= 60:
print("及格了")
else:
print("不及格")
如果条件不止两个,可以用 elif:
score = 85
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("不及格")
4.4 while 循环:重复直到条件不满足
while 循环的逻辑是:只要条件为真,就一直执行。语法:
while 条件:
执行代码
举个例子,打印 1 到 5:
i = 1
while i <= 5:
print(i)
i += 1
我曾经犯过一个错误:忘记写 i += 1,结果程序死循环了,电脑风扇呼呼转。嗯,死循环是 while 最常见的坑,一定要确保条件最终会变成 False。
4.5 for 循环:遍历序列
for 循环更适合遍历列表、字符串、range 等序列。语法:
for 变量 in 序列:
执行代码
遍历列表:
fruits = ["苹果", "香蕉", "橘子"]
for fruit in fruits:
print(fruit)
用 range 生成数字序列:
for i in range(5): # 0,1,2,3,4
print(i)
我个人习惯用 for 循环多于 while,因为 for 更安全,不容易死循环。你想想看,for 循环的迭代次数是确定的,而 while 全靠你手动控制。
4.6 break 和 continue:控制循环的节奏
有时候需要在循环中途跳出去,或者跳过某一次。这时候用 break 和 continue。
- break:立即结束整个循环
- continue:跳过本次循环,进入下一次
看个例子:
for i in range(10):
if i == 5:
break # 到5就停了
print(i)
# 输出:0 1 2 3 4
for i in range(10):
if i % 2 == 0:
continue # 跳过偶数
print(i)
# 输出:1 3 5 7 9
4.7 知识体系图
下面这张图帮你理清本章的知识结构:
4.8 综合示例:猜数字游戏
把今天学的串起来,写个小游戏:
import random
target = random.randint(1, 100)
guess = None
attempts = 0
while guess != target:
guess = int(input("猜一个1-100之间的数字:"))
attempts += 1
if guess < target:
print("小了")
elif guess > target:
print("大了")
else:
print(f"恭喜!猜对了,用了{attempts}次")
break
这个例子用到了 while 循环、if-elif-else、break。我在项目中经常用类似的模式做重试逻辑,比如网络请求失败后自动重试。
好了,这一章就到这里。记住多写代码,光看是学不会的。