4、分支和循环:if判断语句、运算符、if-else语句、while循环、for循环、break、continue

说实话,编程里最核心的「肌肉记忆」就两样:判断循环

判断让代码有脑子,循环让代码有力气。你想想看,没有判断,程序只能一条路走到黑;没有循环,重复写100遍同样的操作能把你累死。

我个人习惯把这一章叫做「代码的骨架和关节」——判断是关节,决定往哪走;循环是骨架,撑起重复劳动。今天咱们就把这两样东西彻底吃透。

4.1 if判断语句:让代码学会「看情况」

先来个最简单的场景。你写了个程序,要判断用户年龄是否成年。

age = 18
if age >= 18:
    print("已成年,可以注册")

嗯,这里要注意:if 后面跟的是条件表达式,结果必须是 TrueFalse。冒号不能丢,缩进必须对齐。

我的小习惯:写 if 的时候,我习惯先把条件想成一句人话。比如「如果年龄大于等于18」,翻译成代码就是 if age >= 18。这样不容易写反。

4.2 运算符:判断的「工具包」

判断离不开运算符。我把它分成三类,你记牢了:

类型 运算符 例子
比较运算符 == != > < >= <= 5 > 3 → True
逻辑运算符 and or not age >= 18 and has_id
成员运算符 in not in "admin" in user_list

我在项目中遇到过最坑的事:把 == 写成 =。一个是判断相等,一个是赋值。Python 里不会报错,但逻辑全乱。我曾经因为这个 bug 排查了半小时……

4.3 if-else 与 if-elif-else:多路分支

单分支不够用?那就上双分支和多分支。

score = 85

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "D"

print(f"你的等级是:{grade}")
避坑指南:我曾经写过一段代码,elif 的条件顺序搞反了。比如先判断 score >= 60 再判断 score >= 90,结果 95 分的人也被归到「及格」里了。记住:范围判断要从大到小写

4.4 while 循环:不知道循环几次?用它

while 循环适合「不知道要循环多少次」的场景。比如等待用户输入正确密码:

password = ""
while password != "123456":
    password = input("请输入密码:")
print("登录成功!")

说白了,while 就是「只要条件成立,就一直做」。但有个大坑——死循环。我刚开始学的时候,忘写循环变量更新,程序直接卡死。嗯,Ctrl+C 是救命快捷键。

4.5 for 循环:遍历一切

for 循环是我用得最多的。它天生就是用来「遍历」的——遍历列表、遍历字符串、遍历字典。

# 遍历列表
fruits = ["苹果", "香蕉", "橘子"]
for fruit in fruits:
    print(f"我喜欢吃{fruit}")

# 配合 range() 遍历数字
for i in range(5):
    print(f"第{i+1}次循环")

我个人习惯用 for item in collection 这种写法,可读性最好。你想想看,代码读起来就像在说「对于集合里的每一个元素,做点什么」——多自然。

4.6 break 和 continue:循环的「刹车」和「跳过」

这两个关键字是循环的「控制手柄」。

  • break:立即结束整个循环。比如找到目标就停。
  • continue:跳过当前这一次,继续下一次。
# break 示例:找到第一个偶数就停
numbers = [1, 3, 5, 6, 7, 9]
for n in numbers:
    if n % 2 == 0:
        print(f"找到偶数:{n}")
        break

# continue 示例:跳过所有奇数
for n in range(10):
    if n % 2 != 0:
        continue
    print(f"偶数:{n}")
实战经验:我在写爬虫时经常用 break。比如爬取商品列表,找到目标价格就立刻停止,避免浪费请求。continue 则常用于数据清洗——遇到脏数据就跳过,不中断整体流程。

4.7 知识体系总览

下面这张图帮你把本章的知识点串起来。建议你保存下来,写代码前瞄一眼。

分支与循环知识体系 分支结构(判断) • if 单分支:条件为真则执行 • if-else 双分支:二选一 • if-elif-else 多分支:多选一 循环结构(重复) • while 循环:条件循环 • for 循环:遍历循环 • range():生成数字序列 循环控制工具 • break:立即跳出整个循环 • continue:跳过本次,继续下一次 基础支撑:比较运算符 | 逻辑运算符 | 成员运算符

4.8 综合小案例:猜数字游戏

把今天学的串起来,写个经典小游戏:

import random

target = random.randint(1, 100)
guess = None
attempts = 0

print("猜一个1到100之间的数字")

while guess != target:
    guess = int(input("你的猜测:"))
    attempts += 1
    
    if guess < target:
        print("小了,再大点")
    elif guess > target:
        print("大了,再小点")
    else:
        print(f"恭喜!猜对了!用了{attempts}次")

# 如果超过10次没猜中,给个提示
if attempts > 10:
    print("虽然猜中了,但次数有点多哦")

这个例子把 if、while、break(隐含在条件里)、比较运算符全用上了。你跑一遍,就能感受到「判断+循环」组合起来的威力。

我的建议:学完这一章,别急着往下走。自己动手改改上面的代码——比如把猜数字改成猜字母,或者加上「猜大猜小」的提示范围。动手改一遍,比看十遍都管用。

公众号:蓝海资料掘金营,微信deep3321