条件控制语句就是根据事务的真假决定选择执行下一步程序,是顺序流程,分支流程,循环流程里的分支流程,属于流程控制语句
条件控制流程图
if条件语句结构
Python的条件控制语句由if...elif...else...
结构组成
最简单的条件语句if
# if ....
a = 10
b = 12
# 条件判断, 这是一个比较运算
if a > b:
# 满足条件执行
print(a)
注意事项: 条件语句的执行部分,需要相对条件判断部分有一个层级缩进, 一般是4个空格
带else的条件语句
if a > b:
print(a)
else:
# a < b 或者 a == b
print(b)
# 注意层级缩进书写
多条件分支elif
# elif相当于else if
if a > b:
print(a)
elif a < b:
print(b)
else:
print(a-b)
初学者容易疏忽的错误
# ######################################
# 初学者容易疏忽的错误 #
# ######################################
# 1. 忘记末尾的冒号:
if a > b
print("hello world")
# 2.层级缩进不统一
if a > b:
print(a)
else:
print(b)
print("end")
Bool类型
在条件语句中,条件判断部分的表达式值最终都是布尔值类型
布尔类型只有两个值:True、False, 其中True表示if条件成立,事件为真, False表示条件不成立,事件为假
# True与False区分大小写
# true、false、 TRUE、FALSE为错误写法
a = True
if a:
print(a)
b = False
if b:
print(b)
# 通过布尔运算(比较运算、成员运算、身份运算、逻辑运算)可以得到布尔结果
# 数字0、空字符串、空列表、空字典、空集合、None在条件判断语句中自动转换为False
布尔类型转换
在进行条件判断时,Python解释器会将其他表达式运算的结果转化为布尔值,作为条件判断结果
# 数字、非空字符串, 非空列表、非空集合、非空元组、非空字典都转换为True
print(bool(1))
print(bool("hello"))
if "hello":
print("ok")
# 在条件语句中,空字符、空列表、空元组、空字典,空集合, None值都会转换为False
print(bool(""))
print(bool([]))
print(bool(None))
if not "":
print("ok")
比较运算
比较运算符包含 >, <, ==, <=, >=, !=
# 不同类型的值不能比较大小
# 字典之间不能比较大小
# 集合的比较只能用于判断是不是子集关系
a = 10
b = 20
print(a > b)
print(a < b)
print(a == b)
print(a != b)
成员运算
成员运算判断一个值或者变量是否是另一个值或者变量的成员, 运算符 in
# 判断一个数字在不在指定的列表里面
lists = [1, 2, 3, 4]
print(5 in lists)
print(4 in lists)
# 集合成员
sets = {1,2,3,4}
print(4 in sets)
# 对字典类型来讲,成员判读依据key名
dicts = {"a": "A"}
print("a" in dicts)
print("A" in dicts)
print("A" in dicts.values())
身份运算
身份运算判断两个变量是不是同一个对象,运算符: is
a = 10
b = a
print(a is b)
a = [[]] * 3
print(a[0] is a[1])
# is not
a = 10
b = a
a is not b
逻辑运算
当条件判断需要同时判断多个条件时,就需要考察所有条件, 逻辑运算符包含and、or、 not
# 逻辑与 - 全部为True, 结果为True
print(True and True)
print(True and False)
# 逻辑或 - 有一个为True,结果为True
print(True or False)
# 逻辑非 - 取反运算
print(not True)
# 短路运算
# 如果and左操作符求值结果为False, 则右操作数不会求值
a = 10
b = 1
# 左侧为True
print((a-1) and (b-2))
# 左侧为False
print((b-1) and (a-2))
# 或运算左边求值结果为False,则右操作数不会求值
print((a-1) or (b-2))
print((b-1) or (a-2))
条件语句嵌套
条件语句可以嵌套另一个条件语句或者其他语句,示例:
将if ... elif ... else ...
改造成 嵌套if语句:
# 举例
a = 10
b = 100
# 使用elif
if a > b:
print("a > b")
elif a == b:
print("a == b")
else:
print("a < b")
# 使用嵌套
if a > b:
print("a > b")
else:
if a == b:
print("a == b")
else:
print("a < b")
条件表达式
在Python中还支持一种形如条件语句的条件表达式.
条件表达式: X if conditon else Y. 如果condition为True, 返回 X值, 否则返回Y值
# 条件表达式是一行语句,也不需要冒号
a = 10
b = 20
c = a if a > b else b
# 条件表达式是求值, 可以与其他表达式一起使用
c = a if a > b else b + 10 if a < 10 else 20
条件语句练习
# 练习一: 使用条件语句对成绩分段打分:不及格, 及格, 良好, 优秀
# 60分以下不及格, 60~75分(含)及格, 75分以上~85分(含)良好, 85分以上优秀
# 练习二: 根据条件输出不同提示
# 根据用户的输入的数字
# 打印不同的语句
# 如果< 10, 输出"你还是个孩子"
# 如果>=10 并且< 20,输出"少年,豆蔻年华"
# 如果>=20, 输出"风华正茂,不负青春"
# 练习三: 根据用户输入不同的颜色。输出不同的语句
# 红色, 输出"红色是喜庆"
# 黄色, 输出"黄色是富贵"
# 白色, 输出"白色是纯净"
讨论区