分支语句
解释:控制程序的语句,根据判断条件选择程序的执行路径。
作用:判断条件是否成立的,当条件成立会执行if语句里面的代码,否则if语句里面的代码不执行。
使用方法:
if <条件1>:
<语句块1>
elif <条件2>:
<语句块2>
...
else:
<语句块N>
- if-else: 当条件成立执行if语句,否则条件不成立执行else语句
- if-elif-else,当某个条件成立时,会执行对应的if语句,其它的判断语句就不再执行。
注意: - elif必须和if一起使用,否则出错;
- else一般用在最后,即所有条件都不满足时使用。
# 需求: 根据分数进行评级
score = 80
if (score >= 90) and (score <= 100):
print("优秀")
elif (score >= 80) and (score < 90):
print("良好")
elif (score >= 70) and (score < 80):
print("一般般")
elif (score >= 60) and (score < 70):
print("及格")
else:
# 以上所有的条件都不成立,会执行else语句,当然else是可选的
print("不及格")
三目运算(三目表达式)
- 三目运算是if-else的简化
- 当条件成立,输出if左侧数据;当条件不成立,输出else后的数据。
# 原始if-else语句
a = 1
b = 2
if a > b:
print(a)
else:
print(b)
# 使用三目运算简化if-else语句的使用
result = a if a > b else b
print(result)
if嵌套
- 外层的if判断,也可以是if-else
- 内层的if判断,也可以是if-else
- 根据实际开发的情况,进行选择
# 男生找女朋友
sex = input("请输入您的性别:")
if sex == "女":
print("代码执行到此: 说明性别没有问题")
# 性别没有问题以后,再判断年龄是否合适
age = int(input("请输入您的芳龄:"))
if (age >= 18) and (age <= 25):
print("找到心中女神")
else:
print("我们不太合适")
else:
print("对不起,我们只要女生")
if语句的扩展
if语句除了结合bool类型使用,还可以集合以下类型:
- 容器类型(字符串,二进制,列表,字典,元组,集合等)
- 数字类型
- None类型
bool类型:True表示成立;False表示不成立。
if True:
print("条件成立")
else:
print("条件不成立")
容器类型:容器里有数据条件成立;容器里没有数据条件不成立。
# 元组
my_tuple = ()
if my_tuple:
print("条件成立")
else:
print("条件不成立")
# 字符串
my_str = ""
if my_str:
print("字符串条件成立")
else:
print("字符串条件不成立")
# 列表
my_list = []
if my_list:
print("列表条件成立")
else:
print("列条件不成立")
# 字节
my_bytes = b''
if my_bytes:
print("字节条件成立")
else:
print("字节件不成立")
数字类型:非0即真。
if 0:
print("条件成立")
else:
print("条件失败")
None类型:None表示不成立;not None表示成立。
if None:
print("成立")
else:
print("失败")
关系(比较、条件)运算符
- 两个变量使用比较运算符获取的结果是bool类型。
- bool类型只有两个值:True、False,当结果是True的时候if语句会执行,否则不执行。
运算符 | 描述 | 示例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果是则条件变为真 | 如a=3,b=3,则(a == b)为True |
!= | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3,则(a != b)为True |
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则(a > b)为True |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则(a < b)为False |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则(a >= b)为True |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则(a <= b)为True |
逻辑运算符
and(逻辑与):左右两边的条件都成立,那么if语句才会执行。
or(逻辑或):表示左右两边有一个条件成立,那么if语句就会执行。
not(逻辑非):对结果进行取反,True取反是False,False取反就是True。
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False → False |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 | False or True → True |
not | not x | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True → Falsenot False → True |
注意:and优先级高于or,and/or优先级高于not, 例:
x = True
y = False
z = False
if x or y and z:
print("yes")
else:
print("no")
----------------------------------Out---------------------------------
yes
if not x or y and z:
print("yes")
else:
print("no")
----------------------------------Out---------------------------------
no