请稍候,加载中....

条件控制语句

条件控制语句就是根据事务的真假决定选择执行下一步程序,是顺序流程,分支流程,循环流程里的分支流程,属于流程控制语句


条件控制流程图

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, 输出"风华正茂,不负青春"

# 练习三: 根据用户输入不同的颜色。输出不同的语句
# 红色, 输出"红色是喜庆"
# 黄色, 输出"黄色是富贵"
# 白色, 输出"白色是纯净"

Python学习手册-