本文为「30天吃透Python核心语法」系列第六篇,承接Day5的比较与逻辑运算符内容,全程纯文字讲解、新手友好、无晦涩术语,每一个知识点都配可直接运行的代码示例,跟着练就能写出带分支逻辑、会自主判断的程序。
大家好,欢迎来到30天Python精通计划的第六天。
Day5我们一起搞定了比较运算符和逻辑运算符,学会了怎么让程序判断“对与错”,得到True或False的结果,很多同学都在评论区完成了打卡,特别棒!
但也有很多同学留言问:我能判断条件的真假了,可怎么让程序根据这个结果,执行不同的操作呢?比如成绩及格了就恭喜,不及格就提醒补考;账号密码对了就登录成功,错了就提示错误,这些到底该怎么写?
别慌,今天我们要学的if条件语句,就是专门解决这个问题的核心语法。
如果说前五天的学习,让你的程序变成了一个“会算数的计算器”,那今天学完if条件语句,你的程序就真正拥有了“思考和选择的能力”,不再是死板地从上到下一行行执行,而是能根据你设定的规则,在不同场景下走不同的逻辑分支。
学完今天的内容,你将:
✅ 彻底搞懂if条件语句的核心逻辑,理解程序分支的执行原理
✅ 掌握单分支、双分支、多分支三种核心结构,覆盖所有判断场景
✅ 学会if嵌套语法,处理更复杂的多层级判断逻辑
✅ 吃透Python缩进的核心规则,避开新手90%的语法报错
✅ 能独立写出带判断逻辑的实用代码,为后续循环、函数学习打下坚实地基
一、先搞懂:if条件语句的本质是什么?
用一句大白话讲,if条件语句的本质,就是我们日常说话的「如果...就...」逻辑,给程序设定一套明确的规则:
- 如果满足某个条件,就执行对应的一段代码;
- 如果不满足,就跳过这段代码,或者执行另一套备用代码。
它的核心作用,就是给程序增加「分支」,让程序不再是一条路走到黑,而是能根据不同的情况,做出不同的反应。
举个最直观的例子:没有if语句的时候,不管你输入的成绩是多少,程序只能固定打印一句话;有了if语句,程序就能判断成绩是否及格,及格了打印恭喜,不及格打印提醒,完全贴合实际场景。
二、第一阶段:if单分支语句——最基础的「如果...就...」
单分支是if语句最基础、最核心的结构,所有复杂的条件语句,都是在这个基础上延伸出来的。
1. 语法规则
单分支的语法非常简单,只有两行核心结构,新手必须严格遵守格式:
第一行:先写关键字 if ,后面跟判断条件(就是Day5学的,结果一定是True或False的表达式),最后必须加英文冒号;
第二行:缩进4个空格(或者1个Tab键),写满足条件时要执行的代码,所有缩进的代码,都属于这个if分支的代码块,只有条件为True时才会执行。
这里必须给新手划一个重中之重的重点:Python是靠缩进来区分代码块的,不是其他语言的大括号,缩进的对错,直接决定了代码能不能运行、逻辑对不对,这个规则我们后面会单独重点讲解。
2. 代码实操示例
我们用两个最常见的场景,带你吃透单分支语句,代码可以直接复制到PyCharm里运行:
python
# 场景1:判断是否成年,成年了就打印提示
age = 20
# 如果年龄大于等于18,就执行缩进里的代码
if age >= 18:
print("您已成年,具备完全民事行为能力")
print("可以独立办理相关业务")
# 场景2:判断成绩是否及格,及格了就恭喜
score = 85
if score >= 60:
print("恭喜你,考试成绩及格了!")
# 这行代码没有缩进,不管条件是否满足,都会执行
print("程序执行结束")
3. 核心执行逻辑
运行上面的代码你会发现:
- 当if后面的条件结果为True时,缩进里的所有代码都会被执行;
- 当条件结果为False时,缩进里的代码会被直接跳过,完全不执行;
- 没有缩进的代码,和if分支无关,不管条件是否满足,都会正常从上到下执行。
三、第二阶段:if-else双分支语句——「如果...就...,否则就...」
单分支语句只能处理“满足条件”的情况,可现实里我们更多需要处理两种结果:满足条件走A方案,不满足条件走B方案,这时候就需要if-else双分支语句。
1. 语法规则
双分支在单分支的基础上,增加了else关键字,用来处理条件不满足的兜底情况,语法规则如下:
第一部分:和单分支完全一致, if + 判断条件 + 英文冒号 ,换行缩进写满足条件的代码;
第二部分:顶格写 else ,后面直接跟英文冒号,不能加任何判断条件;
换行缩进4个空格,写条件不满足时要执行的代码。
2. 核心规则
- if和else是成对出现的,else绝对不能单独使用,必须跟在if的后面;
- else是兜底分支,所有不满足if条件的情况,都会执行else里的代码;
- 两个分支永远只会执行其中一个,不可能同时执行,非此即彼。
3. 代码实操示例
我们用两个高频实用场景,带你吃透双分支语句:
python
# 场景1:账号密码登录判断
username = "python_learn"
password = "123456"
# 如果账号和密码同时正确,执行if里的代码,否则执行else里的代码
if username == "python_learn" and password == "123456":
print("登录成功,欢迎回来!")
else:
print("账号或密码错误,请重新输入")
# 场景2:判断奇数偶数
num = 17
if num % 2 == 0:
print(f"{num}是偶数")
else:
print(f"{num}是奇数")
运行这段代码你会发现,只要if的条件不满足,程序就会自动执行else里的代码,完美覆盖了所有可能的情况,不用再写多个if单分支来处理。
四、第三阶段:if-elif-else多分支语句——「多个条件,选一个执行」
双分支只能处理两种情况,可现实里我们经常会遇到多种情况的判断,比如成绩分优秀、良好、及格、不及格四个等级,年龄分儿童、少年、青年、中年、老年五个阶段,这时候就需要if-elif-else多分支语句。
1. 语法规则
多分支在if的基础上,增加了elif关键字(是else if的缩写,专门用来增加额外的判断条件),语法规则如下:
1. 必须以 if 开头,写第一个判断条件,加冒号,缩进写对应代码;
2. 顶格写 elif + 新的判断条件 + 英文冒号 ,换行缩进写对应代码,elif可以写无数个,没有数量限制;
3. 最后可以顶格写 else + 英文冒号 ,作为所有条件都不满足时的兜底分支,else是可选的,不是必须要写。
2. 核心执行逻辑(新手必记!)
多分支语句的执行逻辑,是新手最容易搞错的地方,必须刻在脑子里:
Python会从上到下依次判断每一个条件,只要找到第一个结果为True的条件,就会执行它对应的缩进代码,执行完成后,直接跳出整个多分支结构,后面所有的elif和else,都不会再判断、不会再执行。
简单说就是:多分支永远只会执行第一个满足条件的分支,执行完就结束,不会多个分支同时执行。
3. 代码实操示例
我们用最经典的成绩分级场景,带你吃透多分支语句:
python
# 场景:根据考试成绩划分等级
score = 87
# 从上到下依次判断,先判断最严格的条件
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格,需要参加补考")
运行这段代码,score是87,第一个条件>=90不满足,跳过;第二个条件>=80满足,执行打印“良好”,后面的elif和else直接全部跳过,不会再判断。
这里给新手一个避坑提醒:多分支的条件顺序,必须从严格到宽松、从范围小到范围大。如果上面的代码,你先写>=60,再写>=80、>=90,那90分的成绩会先满足>=60的条件,直接打印“及格”,后面的条件完全不会执行,逻辑就完全错了。
五、第四阶段:if嵌套语句——「条件里面套条件」
有时候我们会遇到更复杂的判断逻辑:先判断一个大条件,大条件满足了,再判断里面的小条件。比如先判断一个人是否成年,成年了,再判断他有没有驾照,有驾照才能开车,这时候就需要用到if嵌套语句。
1. 语法规则
if嵌套的本质,就是在if/elif/else的缩进代码块里,再写一层完整的if条件语句,核心还是缩进规则:
- 外层的if代码块,缩进4个空格;
- 内层嵌套的if语句,要再额外缩进4个空格,也就是总共8个空格,以此区分层级。
2. 核心提醒
嵌套层级不要太深,新手最多写3层,层级太多会导致代码可读性极差,后期维护、找bug都会非常麻烦,能拆分成多分支的,尽量不要用嵌套。
3. 代码实操示例
我们用开车资格判断的场景,带你吃透if嵌套语句:
python
# 场景:判断是否具备开车资格
age = 22
has_driving_license = True
# 先判断外层大条件:是否成年
if age >= 18:
print("您已成年,符合考驾照的年龄要求")
# 成年了,再判断内层小条件:有没有驾照
if has_driving_license:
print("您持有有效驾照,可以合法驾驶机动车")
else:
print("您还没有考取驾照,不能开车上路")
# 外层条件不满足,直接走else,不会执行内层的嵌套判断
else:
print("您尚未成年,不能考取驾照,禁止开车上路")
运行这段代码你会发现,只有外层的if条件满足了,才会执行内层的嵌套判断;如果外层条件不满足,内层的代码会被直接跳过,完全不会执行。
六、新手必守的核心铁则:Python缩进规则
这部分是今天最重要的内容,没有之一。新手学if语句,90%的报错都来自于缩进错误,必须把这几条规则刻在脑子里。
1. 冒号和缩进是绑定的:只要是if、elif、else的结尾,必须加英文冒号,加了冒号,下一行就必须缩进,不缩进直接报错。
2. 同一层级的代码,缩进必须完全一致:同一个分支里的代码,必须缩进相同的空格数,要么都是4个空格,要么都是1个Tab,绝对不能有的缩4格、有的缩8格,也不能Tab和空格混着用,否则会直接触发缩进报错。
3. 缩进决定了代码的归属:代码缩进了,就属于前面的if分支,只有条件满足才会执行;没有缩进,就是全局代码,不管条件是否满足,都会正常执行。
4. 推荐缩进规范:Python官方推荐用4个空格作为一个缩进层级,不要用Tab键,不同的编辑器里Tab的宽度不一样,容易出问题,PyCharm里按下Tab键会自动转换成4个空格,新手可以放心用。
七、新手高频踩坑避坑指南
这里整理了Day6学if语句时,新手100%会遇到的报错和逻辑问题,提前讲清原因和解决方法,帮你少走弯路。
1. 缩进错误:IndentationError
这是新手最常见的报错,要么是该缩进的没缩进,要么是同一层级的代码缩进不一致,要么是Tab和空格混着用。解决方法:严格遵守缩进规则,同一层级的代码缩进完全一致,统一用4个空格作为一个缩进层级。
2. 缺少冒号:SyntaxError: invalid syntax
很多新手写完if的条件,忘了加英文冒号,直接换行写代码,一定会触发这个报错。解决方法:只要写了if、elif、else,结尾必须加英文冒号,养成写完条件就加冒号的习惯。
3. 把判断相等的==写成了赋值的=
新手经常会在if的条件里,把 age == 18 写成 age = 18 ,这会直接报错。解决方法:if的条件里,判断两个值是否相等,必须用双等号==,单等号=是赋值运算符,绝对不能用在条件判断里。
4. elif和else的顺序写错
很多新手会把else写在elif的前面,或者把else单独拿出来用,都会直接报错。解决方法:必须严格遵守「if → 多个elif → 一个else」的顺序,else只能有一个,必须放在整个结构的最后,绝对不能单独使用。
5. 多分支的条件顺序搞反,导致逻辑错误
新手经常会把宽松的条件写在前面,严格的条件写在后面,比如先判断>=60,再判断>=90,导致高分成绩也会走到及格的分支里。解决方法:多分支的条件,必须从上到下,从最严格到最宽松,先判断范围最小的,再判断范围大的。
6. 用了中文标点,触发语法报错
if条件里的括号、冒号、引号,用了中文格式,会直接报错。解决方法:所有代码里的标点符号,必须全部是英文格式,写完代码先检查标点。
7. 逻辑运算符and和or搞混,导致条件判断不符合预期
比如想判断成绩在80到90之间,写成了 score >=80 or score <=90 ,结果所有成绩都满足条件。解决方法:同时满足多个条件用and,只需要满足一个用or,不确定的时候,给每个条件加小括号,明确逻辑边界。
八、今日课后作业(必做!只看不敲,永远学不会)
编程是一门实操技能,只有动手敲代码,才能真正把判断逻辑刻进脑子里。今天的作业循序渐进,全部完成,才算真正吃透if条件语句。
1. 基础必做:定义变量age=17,用if-else双分支语句判断是否成年,成年打印“您已成年,具备完全民事行为能力”,未成年打印“您尚未成年,需监护人陪同办理相关业务”。
2. 进阶练习:定义变量score=76,用if-elif-else多分支语句做成绩分级,90分及以上为优秀,80-89分为良好,60-79分为及格,60分以下为不及格,打印对应的成绩等级。
3. 挑战练习:写一个简易的用户登录逻辑,定义username和password两个变量,先判断用户名是否正确,正确的话再判断密码是否正确;用户名和密码都正确,打印“登录成功,欢迎回来”;用户名错误,打印“该用户名不存在,请检查后重试”;用户名正确但密码错误,打印“密码错误,您还有3次重试机会”。
4. 习惯养成:严格遵守缩进规则,给每一个分支都加上清晰的单行注释,变量名使用规范的蛇形命名法,做到见名知意。
九、明日预告
Day7我们将学习Python的while循环语句,承接今天的条件判断逻辑,学会让程序重复执行同一段代码,不用再反复复制粘贴。
学完明天的内容,你就能写出1到100累加、猜数字小游戏、批量处理数据等实用代码,让程序从“会选择”升级到“会重复执行、批量处理”,彻底解放双手。
结尾互动
今天的if条件语句,你都学会了吗?
完成作业的同学,可以在评论区扣个【打卡Day6】!
遇到任何报错、逻辑搞不懂的问题,都可以在评论区留言,我会一一解答。
关注我,跟着30天计划,从零开始,彻底精通Python核心语法,每天1.5小时,30天就能独立写Python脚本,搞定日常办公自动化!