Python入门第5章:if 语句(条件判断、逻辑运算)

大家好,欢迎来到Python入门系列的第5章内容!在前4章里,我们学会了变量、数据类型、输入输出和基本运算符,写的代码都是“从头到尾”顺序执行的——就像一条直路,没有分支,没有选择。但现实生活中,我们每天都在做“判断”:如果下雨就带伞,否则就穿外套;如果考试及格就放假,否则就补课。Python程序也需要这种“判断能力”,而实现它的核心,就是今天要学的if语句,再加上辅助判断的逻辑运算

这一章的内容不算复杂,但却是Python编程的“逻辑基石”——学会if语句,你才能写出有“思考能力”的程序,比如判断用户输入是否正确、筛选符合条件的数据、实现简单的登录验证等。话不多说,我们正式开始!

一、为什么需要if语句?

先看一个简单的场景:假设我们要写一个程序,判断一个学生的成绩是否及格(60分及以上为及格)。如果只用之前学的知识,我们只能打印出成绩,却无法根据成绩给出“及格”或“不及格”的判断。

比如这样的代码,只能输出成绩,没有判断逻辑:

score = 75
print("学生成绩:", score)
# 无法判断是否及格

而有了if语句,我们就能让程序“做选择”:如果score >= 60,就打印“及格”;否则,打印“不及格”。这就是if语句的核心作用——根据条件的真假,执行不同的代码块,实现程序的分支逻辑。

二、if语句的基础语法(3种形式)

Python中的if语句有3种常用形式,分别对应“单分支”“双分支”“多分支”,语法非常简洁,核心依赖缩进(4个空格或1个Tab)来划分代码块,这也是Python区别于其他语言的特点之一,缩进错误会直接导致程序报错哦。

1. 单分支:if (只有“满足条件”才执行)

最基础的形式:当条件为真(True)时,执行缩进的代码块;条件为假(False)时,跳过代码块,继续执行后面的内容。

语法格式:

if 条件表达式:
    条件为True时执行的代码(缩进4个空格)
    同一代码块的代码,缩进要一致

注意:条件表达式后面必须加冒号(:),这是Python的语法要求,忘记加会报错。

示例:判断一个数是否为正数

# 定义变量
num = 10
# 单分支if判断
if num > 0:
    print(num, "是正数")
# 条件不满足时,不执行上面的print,直接执行这里
print("判断结束")

运行结果:

10 是正数
判断结束

如果把num改成-5,条件num > 0为假,就会跳过print(num, “是正数”),直接输出“判断结束”。

2. 双分支:if-else (满足和不满足都有对应执行)

单分支只有“满足条件”的执行逻辑,双分支则补充了“不满足条件”的逻辑——if负责“真”,else负责“假”,两者必执行一个。

语法格式:

if 条件表达式:
    条件为True时执行的代码
else:
    条件为False时执行的代码(else后面也要加冒号,缩进一致)

示例:判断成绩是否及格(最常用场景)

score = 58
if score >= 60:
    print("及格,继续加油!")
else:
    print("不及格,需要补考哦~")

运行结果:

不及格,需要补考哦~

这里的else不需要写条件,它会自动承接“if条件不成立”的所有情况,相当于“否则”。

3. 多分支:if-elif-else (多个条件,逐一判断)

当有多个条件需要判断时,单分支和双分支就不够用了。比如判断成绩等级:90分及以上为优秀,80-89分为良好,60-79分为及格,60分以下为不及格。这时候就需要用if-elif-else,elif是“else if”的简写,可以写多个。

语法格式:

if 条件1:
    条件1True时执行的代码
elif 条件2:
    条件1False、条件2True时执行的代码
elif 条件3:
    条件12都为False、条件3True时执行的代码
...(可以有多个elifelse:
    所有条件都为False时执行的代码(可选)

核心注意点:程序会从上到下逐一判断条件,只要有一个条件成立,就执行对应的代码块,然后跳过后面所有的elif和else(不会重复判断)。

示例:判断成绩等级

score = 85
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")  # 85 >=80成立,执行这里,跳过后面的判断
elif score >= 60:
    print("及格")
else:
    print("不及格")

运行结果:

良好

小贴士:elif的顺序很重要!如果把score >= 60放在最前面,那么所有60分以上的成绩都会被判定为“及格”,后面的优秀、良好就永远不会执行了,大家一定要注意条件的顺序哦。

三、条件表达式的核心:比较运算符

if语句的“条件”,本质上是一个“布尔表达式”——计算结果只有True(真)或False(假)。而构成条件的核心,就是我们之前学过的比较运算符,用来比较两个值的大小或是否相等。

常用比较运算符(必记):

  • == :等于(注意是两个等号,不是一个!一个等号是赋值,两个等号才是判断相等)

  • != :不等于

  • > :大于

  • < :小于

  • >= :大于等于

  • <= :小于等于

易错点提醒:

# 错误写法(用一个等号赋值,不是判断)
if num = 10:
    print("num等于10")

# 正确写法(两个等号判断相等)
if num == 10:
    print("num等于10")

另外,Python支持“链式比较”,比如判断一个数是否在某个区间,写法非常简洁:

age = 20
# 链式比较:判断age是否在18到30之间(包含18和30)
if 18 <= age <= 30:
    print("青年")

这等价于 if age >= 18 and age <= 30: ,但更简洁易懂,推荐使用。

四、逻辑运算:组合多个条件(and、or、not)

有时候,我们需要同时判断多个条件,比如“年龄大于18,并且身高大于170”“成绩大于60,或者有加分项”。这时候就需要用到逻辑运算符,将多个条件组合起来,形成更复杂的判断。

Python中有3个核心逻辑运算符,必须牢记它们的作用和优先级:

1. and (逻辑与):所有条件都为真,结果才为真

语法:条件1 and 条件2

规则:只有条件1和条件2都为True,整个表达式的结果才是True;只要有一个为False,结果就是False。

示例:判断是否为成年男性

age = 22
gender = "男"
# 同时满足:年龄>=18,并且性别是男
if age >= 18 and gender == "男":
    print("成年男性")
else:
    print("不是成年男性")

补充:and还有一个“短路特性”——如果前一个条件为False,Python不会再计算后一个条件,直接返回False,这样可以提升程序效率,还能避免一些错误(比如避免除以0)。

x = 0
# x != 0为False,10/x不会执行,避免报错
if x != 0 and 10 / x > 1:
    print("满足条件")

2. or (逻辑或):只要有一个条件为真,结果就为真

语法:条件1 or 条件2

规则:条件1和条件2中,只要有一个为True,整个表达式的结果就是True;只有两个都为False,结果才是False。

示例:判断是否满足优惠条件(消费满100元,或者是会员)

consume = 80
is_member = True
# 满足一个条件即可:消费>=100,或者是会员
if consume >= 100 or is_member:
    print("可以享受优惠")
else:
    print("不满足优惠条件")

运行结果:可以享受优惠(因为is_member为True)

or也有短路特性——如果前一个条件为True,Python不会再计算后一个条件,直接返回True。

3. not (逻辑非):取反,真变假,假变真

语法:not 条件

规则:将原来的条件结果取反,True变成False,False变成True。常用于“否定某个条件”。

示例:判断一个数不是负数

num = 5
# 判断num不是负数(即num >= 0)
if not num < 0:
    print(num, "不是负数")

运行结果:5 不是负数

逻辑运算符优先级

当一个条件中有多个逻辑运算符时,优先级从高到低为:not > and > or。如果表达式比较复杂,建议用括号括起来,避免歧义,也更易读。

# 优先级:not > and > or
print(True or False and False)  # 等价于 True or (False and False),结果为True
print((True or False) and False)  # 加括号改变优先级,结果为False

五、if语句的嵌套(进阶)

当判断逻辑比较复杂,有“层级关系”时,我们可以在if(或elif、else)的代码块中,再嵌套一个if语句,这就是“嵌套if”。

示例:判断一个数是否为偶数,并且是正数(先判断是否为正数,再判断是否为偶数)

num = 12
if num > 0:
    print("这是一个正数")
    # 嵌套if:在正数的基础上,判断是否为偶数
    if num % 2 == 0:
        print("并且是偶数")
    else:
        print("但不是偶数")
else:
    print("这不是正数")

运行结果:

这是一个正数
并且是偶数

小贴士:嵌套if不要嵌套太深(建议不超过3层),否则代码会变得混乱,不易阅读和维护。复杂逻辑可以尝试用逻辑运算符组合,或者拆分代码块。

六、常见易错点总结(必看)

入门阶段,大家写if语句很容易踩坑,这里总结4个最常见的错误,帮大家避坑:

  1. 忘记加冒号(:):if、elif、else后面必须加冒号,否则会报语法错误。

  2. 缩进错误:同一代码块的缩进必须一致(推荐4个空格),缩进多了或少了,都会报错(IndentationError)。

  3. 用“=”代替“==”:把赋值符号当成判断相等的符号,这是最容易犯的错误,一定要记住“==才是判断相等”。

  4. elif顺序错误:多分支中,条件范围大的要放在后面,否则会覆盖前面的条件(比如把score >=60放在最前面,会导致优秀、良好的判断失效)。

七、实战练习(巩固知识点)

学完知识点,一定要动手练习,才能真正掌握。这里给大家3个练习题目,从简单到复杂,大家可以自己写代码试试:

  1. 简单:输入一个年龄,判断是否为成年人(18及以上为成年),输出对应提示。

  2. 中等:输入一个成绩,用多分支判断等级(90+优秀,80-89良好,60-79及格,60以下不及格)。

  3. 进阶:输入一个年份,判断是否为闰年(闰年规则:能被4整除但不能被100整除,或者能被400整除),可以用嵌套if或逻辑运算符实现。

练习答案会放在下一章的开头,大家可以先自己尝试,不要直接看答案哦~

八、本章小结

本章我们学会了Python中实现“判断逻辑”的核心——if语句,包括3种基本形式(单分支、双分支、多分支),以及辅助组合条件的逻辑运算符(and、or、not),还有比较运算符的正确使用。

核心要点回顾:

  • if语句的核心是“条件判断”,根据条件真假执行不同代码块,依赖缩进和冒号。

  • 比较运算符是构成条件的基础,记住“==是判断,=是赋值”。

  • 逻辑运算符用于组合多个条件,优先级:not > and > or,复杂逻辑加括号。

  • 嵌套if用于复杂层级判断,避免嵌套过深。

if语句是Python编程中最常用的结构之一,下一章我们会学习循环语句(for、while),结合if语句,就能写出更复杂、更强大的程序啦!

如果大家在练习中遇到问题,欢迎在评论区留言,我会一一解答。我们下一章再见!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐