Python(十一) 中的分支语句
一、什么是分支语句
分支语句,也叫条件语句。它的作用是让程序根据不同的条件,选择执行不同的代码。
通俗地说,分支语句就是程序里的“如果……就……”。
生活中的例子:
如果今天下雨:
就带伞
否则:
就不用带伞
写成 Python 程序就是:
weather = "下雨"
if weather == "下雨":
print("带伞")
else:
print("不用带伞")
程序运行时,会先判断条件是否成立。
如果条件成立,就执行对应的代码。
如果条件不成立,就执行其他代码,或者什么也不做。
Python 中常见的分支关键字有三个:
if 如果
elif 否则如果
else 否则
其中,if 必须有,elif 和 else 可以根据需要选择是否使用。
二、if 语句的基本用法
最简单的分支语句只有 if。
语法格式:
if 条件:
条件成立时执行的代码
示例:
age = 18
if age >= 18:
print("你已经成年了")
这段代码的意思是:
如果 age 大于等于 18,就输出“你已经成年了”。
如果 age >= 18 的结果是 True,就会执行 print()。
如果 age >= 18 的结果是 False,就不会执行 print()。
三、if...else 语句
当我们需要处理“条件成立”和“条件不成立”两种情况时,可以使用 if...else。
语法格式:
if 条件:
条件成立时执行的代码
else:
条件不成立时执行的代码
示例:判断考试是否及格。
score = 75
if score >= 60:
print("考试及格")
else:
print("考试不及格")
执行过程:
如果 score >= 60 成立,输出“考试及格”。
否则,输出“考试不及格”。
else 不需要写条件,因为它表示“上面的条件都不成立时”。
四、if...elif...else 语句
如果需要判断的情况不止两种,可以使用 elif。
elif 可以理解成“否则如果”。
语法格式:
if 条件1:
条件1成立时执行的代码
elif 条件2:
条件2成立时执行的代码
elif 条件3:
条件3成立时执行的代码
else:
上面条件都不成立时执行的代码
示例:根据成绩判断等级。
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
程序会从上往下依次判断:
先判断 score >= 90
如果不成立,再判断 score >= 80
如果还不成立,再判断 score >= 60
如果都不成立,执行 else
注意:只要有一个条件成立,后面的条件就不会再判断。
五、条件表达式和比较运算符
分支语句中的条件,最终结果通常是 True 或 False。
常见比较运算符如下:
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
示例:
x = 10
print(x == 10) # True
print(x > 20) # False
在分支语句中可以这样使用:
temperature = 38
if temperature >= 37.3:
print("体温偏高")
else:
print("体温正常")
六、多个条件的判断
有时候,一个判断需要同时考虑多个条件。
Python 中常用的逻辑运算符有:
and 并且,两个条件都成立,结果才成立
or 或者,只要有一个条件成立,结果就成立
not 取反,把 True 变成 False,把 False 变成 True
1. and 的用法
示例:年龄达到 18 岁,并且有票,才能入场。
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print("可以入场")
else:
print("不能入场")
这里的条件是:
age >= 18 and has_ticket
只有两个条件都成立,整体条件才成立。
2. or 的用法
示例:判断今天是不是周末。
day = "周六"
if day == "周六" or day == "周日":
print("今天是周末")
else:
print("今天是工作日")
只要 day 是 "周六" 或 "周日",就会输出“今天是周末”。
更简洁的写法是:
day = "周六"
if day in ["周六", "周日"]:
print("今天是周末")
else:
print("今天是工作日")
3. not 的用法
示例:
is_raining = False
if not is_raining:
print("不用带伞")
else:
print("需要带伞")
not is_raining 的意思是“不是正在下雨”。
七、嵌套分支语句
分支语句里面还可以继续写分支语句,这叫嵌套分支。
示例:
age = 20
money = 50
if age >= 18:
if money >= 30:
print("可以买电影票")
else:
print("钱不够")
else:
print("年龄不够")
这段代码的判断过程是:
先判断年龄是否达到 18 岁。
如果年龄达到要求,再判断钱是否足够。
如果年龄不够,就直接输出“年龄不够”。
不过,嵌套分支不要写得太深。嵌套太多,代码会不容易看懂。
如果条件可以合并,可以写得更简单:
age = 20
money = 50
if age >= 18 and money >= 30:
print("可以买电影票")
else:
print("不能买电影票")
八、条件表达式的简写
Python 中还有一种简写形式,适合简单的二选一判断。
语法格式:
结果1 if 条件 else 结果2
示例:
age = 18
message = "成年" if age >= 18 else "未成年"
print(message)
它等价于:
age = 18
if age >= 18:
message = "成年"
else:
message = "未成年"
print(message)
这种写法适合简单判断。如果逻辑比较复杂,还是建议使用普通的 if...else,这样更清楚。
九、Python 中哪些值会被当作 False
在 Python 中,有些值本身就可以作为条件。
下面这些值通常会被当作 False:
False
0
0.0
""
[]
()
{}
None
示例:
name = ""
if name:
print("名字已填写")
else:
print("名字为空")
因为空字符串 "" 会被当作 False,所以会输出:
名字为空
再例如:
numbers = []
if numbers:
print("列表中有数据")
else:
print("列表是空的")
空列表 [] 也会被当作 False。
十、常见注意事项
1. if、elif、else 后面一定要加冒号
错误写法:
if age >= 18
print("成年")
正确写法:
if age >= 18:
print("成年")
冒号 : 表示下面要开始写这个条件对应的代码块。
2. Python 使用缩进表示代码块
Python 不使用大括号 {} 表示代码块,而是使用缩进。
正确写法:
if score >= 60:
print("及格")
print("继续努力")
错误写法:
if score >= 60:
print("及格")
通常建议使用 4 个空格作为一级缩进。
缩进不正确,程序可能会报错,也可能会产生错误的运行结果。
3. elif 不能写成 else if
在 Python 中,elif 是固定写法。
错误写法:
if score >= 90:
print("优秀")
else if score >= 60:
print("及格")
正确写法:
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
4. 判断相等使用 ==,不是 =
= 是赋值,意思是把右边的值交给左边的变量。
== 是判断是否相等。
错误写法:
password = "123456"
if password = "123456":
print("登录成功")
正确写法:
password = "123456"
if password == "123456":
print("登录成功")
5. 条件顺序很重要
多个条件判断时,要把更具体、更严格的条件放在前面。
错误示例:
score = 95
if score >= 60:
print("及格")
elif score >= 90:
print("优秀")
这段代码会输出:
及格
虽然 95 分应该是优秀,但是程序先判断 score >= 60,这个条件已经成立,所以后面的 score >= 90 不会再判断。
正确写法:
score = 95
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("不及格")
6. 不要把多个相等判断写错
错误写法:
day = "周六"
if day == "周六" or "周日":
print("周末")
这段代码看起来像是在判断“day 是周六或周日”,但写法是不正确的。
正确写法:
day = "周六"
if day == "周六" or day == "周日":
print("周末")
更推荐的写法:
day = "周六"
if day in ["周六", "周日"]:
print("周末")
7. else 不是必须写
如果只有条件成立时需要处理,不成立时什么都不做,可以只写 if。
示例:
temperature = 38
if temperature >= 37.3:
print("体温偏高")
这里没有写 else,也是完全可以的。
8. 条件不要写得过于复杂
复杂条件会降低代码可读性。
不太好读的写法:
if age >= 18 and money >= 30 and has_ticket and not is_banned:
print("可以入场")
更清楚的写法:
is_adult = age >= 18
has_enough_money = money >= 30
can_enter = is_adult and has_enough_money and has_ticket and not is_banned
if can_enter:
print("可以入场")
教学时可以告诉学生:代码不仅要能运行,还要让别人容易看懂。
十一、课堂示例
示例 1:判断奇偶数
num = int(input("请输入一个整数:"))
if num % 2 == 0:
print("这是偶数")
else:
print("这是奇数")
讲解:
% 是取余运算符。
如果一个数除以 2 的余数是 0,说明它是偶数。
否则就是奇数。
示例 2:判断成绩等级
score = int(input("请输入成绩:"))
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
讲解重点:
多个条件会从上往下判断。
只要有一个条件成立,后面的条件就不再判断。
示例 3:模拟登录
username = input("请输入用户名:")
password = input("请输入密码:")
if username == "admin" and password == "123456":
print("登录成功")
else:
print("用户名或密码错误")
讲解重点:
and 表示两个条件都必须成立。
用户名正确,并且密码正确,才登录成功。
示例 4:判断是否可以参加比赛
age = int(input("请输入年龄:"))
height = int(input("请输入身高:"))
if age >= 12 and height >= 150:
print("可以参加比赛")
else:
print("暂时不能参加比赛")
这个例子适合让学生练习多个条件判断。
十二、教学建议
讲解分支语句时,可以按照下面的顺序进行:
1. 先用生活例子解释“如果……否则……”
2. 再讲 if 的基本结构
3. 然后讲 if...else
4. 接着讲 if...elif...else
5. 最后讲常见错误和综合练习
可以引导学生思考:
如果成绩大于等于 60,应该做什么?
如果成绩小于 60,应该做什么?
如果成绩有优秀、良好、及格、不及格四种情况,又应该怎么写?
这样学生会更容易理解为什么需要分支语句。
十三、总结
Python 分支语句的核心作用是让程序具有判断能力。
可以这样记:
if:如果条件成立,就执行
elif:否则如果另一个条件成立,就执行
else:如果上面的条件都不成立,就执行
学习分支语句时,最重要的三个点是:
1. 条件后面要加冒号
2. 代码块必须正确缩进
3. 多条件判断时要注意判断顺序
一句话总结:
分支语句让程序不再只能从上到下机械执行,而是可以根据不同情况做出不同选择。