10、Python流程控制-条件判断
10、Python流程控制-条件判断
1.初识条件判断
在Python中,if
、elif
和else
是条件语句,用于基于不同的情况执行不同的代码块。
if 语句用于检查一个条件是否为 True,如果条件为 True,则执行 if 块中的代码。例如
x = 5
if x > 0:print("x是正数")
上面的代码中,if 语句检查变量 x 是否大于 0,如果满足条件,则打印出“x是正数”。
elif是另外一个条件语句( elseif 的缩写),它通常与 if 一起使用,用于检查多个条件并在条件得到满足时执行相应的代码块。例如:
x = 5
if x < 0:print('x是负数')
elif x == 0:print('x等于0')
else:print('x是正数')
# 上面的代码中,如果 x 小于 0,则打印出“x是负数”,如果 x 等于 0,则打印出“x等于 0”,否则打印出“x是正数”。
else 语句是可选的,在所有其他 if 和 elif 条件不为真时执行。这样可以确保至少有一个分支被执行。例如:
x = -1
if x > 0:print('x是正数')
elif x == 0:print('x等于0')
else:print('x是负数')# 上面的代码中,由于 x 小于 0,因此 if 和 elif 条件均不成立,最后执行 else 块中的代码,打印出“x是负数”。
2.辨识区分
a = int(input('请输入条件:'))if a == 1:print('我满足了if条件')
# elif可存在一个或多个
a = int(input('请输入条件:'))if a == 1:print('我满足了if条件')
elif a == 2:print('我满足了elif 2条件')elif a == 3:print('我满足了elif 3条件')elif a == 4:print('我满足了elif 4条件')
a = int(input('请输入条件:'))if a == 1:print('我满足了if条件')
elif a == 2:print('我满足了elif 2条件')
elif a == 3:print('我满足了elif 3条件')
else:print('以上条件都没满足,我执行了else')
# 常规:就近原则,关键点在于if
a = int(input('请输入条件:'))if a == 1:print('我满足了if 1条件')
else:print('以上条件都没满足,我执行了else a')
if a == 5:print('我满足了if 5条件')
if a == 3:print('我满足了if 3条件')
elif a == 4:print('我满足了elif 4条件')
else:print('以上条件都没满足,我执行了else b')
# 嵌套:就近原则 + 缩进区分,关键点在于if及缩进
a = int(input('请输入条件:'))if a == 1:print('我满足了if 1条件')if a == 3:if a == 5:print('我满足了if 5条件')print('我满足了if 3条件')elif a == 4:print('我满足了elif 4条件')else:print('以上条件都没满足,我执行了else b')
else:print('以上条件都没满足,我执行了else a')
3.三目运算
在Python中,可以使用“三目运算符”(也称为条件表达式)来简化 if-else
语句的代码。三目运算符通常由一个问题和两个答案组成,根据问题返回其中一个答案。
# 语法如下
x = value1 if condition else value2# 其中,condition 是判断条件,如果条件为真,则将 value1 赋值给变量 x;否则将 value2 赋值给变量 x。
案例:下面的代码用 if-else 语句计算一个数的绝对值:
num = -5
if num < 0:abs_num = -num
else:abs_num = num
print(abs_num) # 输出结果:5
使用三目运算符可以把上面的代码简化为
num = -5
abs_num = -num if num < 0 else num
print(abs_num) # 输出结果:5
三目运算符可用于在 Python 中替代 if-else
语句的某些简单情况,从而可以减少代码行数并使代码更加简洁易读。
# 案例讲解
a = int(input('请输入条件:'))# 升级一下(嵌套操作)
print(1) if a == 1 else (print(a) if a == 2 else print(3))# 警告:最多套两层,套多了不利于项目代码维护及调试