💬欢迎学习本节课!如果你在学习过程中有疑问,欢迎在评论区留言提问,一起交流学习!
一、概念讲解
条件语句也叫选择语句,是Python流程控制中最基础的语法。作用:根据条件的真假,选择执行不同的代码块,就像走到岔路口,满足哪个条件,就走哪条路,不满足就跳过该分支。
Python条件语句核心关键字:
- if:如果,开启条件判断
- elif:否则如果,处理多组条件
- else:否则,兜底分支,以上条件都不满足才执行
核心规则:
1. 条件最终会被解释为布尔值True(真)、False(假),条件为True才执行对应缩进内的代码。
2. Python依靠缩进(推荐4个空格)区分代码块,不是大括号{}。
3. if、elif、else行末尾必须写英文冒号:,漏写直接语法报错。
4. Python存在隐式真假:下面这些值会被当作假False:False、0、0.0、空字符串""、空列表[]、空元组()、空字典{}、None;其余全部视为真True。
二、条件语句4种基础结构
1.单分支 if 语句
只有if,条件成立执行代码;条件不成立直接跳过,什么都不执行。
语法:
if 条件表达式: # 条件为True执行,必须缩进4空格 执行代码
代码示例:
age = 20if age >= 18: print("你已经成年,可以浏览")print("程序运行结束")
运行输出:
特殊细节:最后一行没有缩进,无论if条件是否成立,永远都会执行。
2.双分支 if‑else 语句
二选一逻辑:if条件成立执行if块;不成立就执行else块。两段代码只会执行其中一段,不会同时运行。
注意:else后面不能写条件,只能加冒号,必须搭配if使用,不能单独写else。
语法:
if 条件: 条件成立执行else: 条件不成立执行
代码示例:
score = 55if score >= 60: print("考试及格")else: print("考试不及格")
输出:考试不及格
3.多分支 if‑elif‑else 语句
多组互斥条件,从上往下依次判断,只要某一个elif条件成立,执行完就直接跳出整个if结构,后面所有elif不会再判断;全部条件都不满足,执行else兜底。
⚠️重要细节:条件顺序不能乱,严格的条件要写在前面,宽松条件写后面,否则会被提前拦截,逻辑出错。
语法:
if 条件1: 代码1elif 条件2: 代码2elif 条件3: 代码3else: 全部不满足时执行
代码示例(成绩评级):
score = 82if score >= 90: print("等级:优秀")elif score >= 80: print("等级:良好")elif score >= 60: print("等级:及格")else: print("等级:不及格")
输出:等级:良好
错误示范(顺序颠倒,逻辑失效)
score = 82if score >=60: print("及格")elif score >=80: print("良好") #永远不会执行,82先满足>=60直接跳出
4.条件嵌套(if里面写if)
在if…elif…else的缩进代码块内部,再写一套条件语句,嵌套层级越多,缩进就要继续增加4空格。
代码示例:
age = 22has_id = Trueif age >=18: print("年龄达标") if has_id: print("有身份证,可以进入") else: print("缺少身份证,禁止进入")else: print("年龄不足,禁止进入")
输出:
三、特殊知识点拓展
1.pass占位语句
当语法上必须写代码块,但暂时不知道写什么逻辑,不能空着,就写pass占位。pass是空操作,什么都不做,仅仅用来保证语法合法。
num = 10if num > 5: pass #暂时不写逻辑,防止报错else: print("数字小于等于5")
2.三元条件表达式(简化if‑else)
把简单if‑else压缩写成一行,适合简单二选一赋值,不适合复杂多分支。
语法:变量 = 真值 if 条件 else 假值
示例:
age =17res = "成年" if age >=18 else "未成年"print(res)
输出:未成年
3.连续比较写法(Python独有)
可以直接写 a < b < c,等价于a < b and b < c,代码更简洁。
score =88if 80 <= score <=90: print("分数在80‑90区间")
4.空对象简洁判断
不要写多余len()==0,容器对象可以直接放if后做判断。
lst = []# 推荐写法if not lst: print("列表为空")# 不推荐:冗余写法# if len(lst) == 0:# print("列表为空")
⚠️注意:判断None,请用if x is None,不要用if x == None。
四、高频易错坑点(重点)
1. 漏写英文冒号::if、elif、else行末尾必须加英文冒号,中文冒号也会报错。
2. 缩进混乱:同一个代码块缩进空格数必须完全一致,禁止Tab和空格混用,会出现隐形报错IndentationError。
3. =和==混淆:=是赋值;==才是判断相等。if a = 10:直接语法错误。
4. 多分支条件顺序错误,宽松条件写前面,后面分支永远执行不到。
5. else不能加条件,不能写成else x<60:。
6. 浮点数不要直接用==判断相等,存在精度误差问题。
五、课后练习题(共3道)
练习1(基础)
编写代码:接收用户输入的整数,如果数字大于0打印“正数”;小于0打印“负数”;等于0打印“等于零”。
练习2(多分支)
编写程序:输入星期数字1‑7。1输出星期一,2输出星期二……7输出星期日。输入其他数字输出“输入无效”。
练习3(嵌套+三元)
使用嵌套条件:接收输入年龄,如果大于等于18,再判断是否大于60;大于60输出“老年”,18‑59输出“成年”;小于18输出“未成年”。
💬学完本课你掌握了吗?练习遇到报错、有不懂的知识点欢迎评论区留言,一起讨论!