条件判断
在我们的日常生活中存在着许多判断。例如,我们在煮开水的时候,需要查看水是否沸腾了,如果沸腾了就关火。在这个例子中,查看水是否沸腾就是我们需要判断的条件,关火就是条件成立之后需要采取的动作。
在Python中,也是可以做到条件判断的,下面我们就开始介绍。
if
语法格式:
if 条件表达式:
需要执行的语句1
需要执行的语句2
...
需要执行的语句3
注意:如果条件成立之后,会执行缩进的内容;而没有缩进的内容与本次条件判断没有任何关系,不受条件的成立与否的影响。
代码示例1:
misc = {"小黄":20, "小红":19, "小绿":18}
if misc["小黄"] <= 18 :
print("小黄年龄小于或等于18岁")
if misc.get("小红", 0) >= 18 :
print("小红年龄大于或等于18岁")
if misc.get("小绿") == 18 :
print("小绿年龄等于18岁")
运行结果1:
小红年龄大于或等于18岁
小绿年龄等于18岁
条件表达式中不仅仅可以接一个表达式,还可以通过and、or进行拼接多个条件。
代码示例2:
misc = {"小黄":20, "小红":19, "小绿":18}
if misc["小黄"] == 18 and misc["小红"] == 18 and misc["小绿"] == 18 :
print("小黄、小红、小绿三个的年龄都等于18岁")
if misc["小黄"] == 18 or misc["小红"] == 18 or misc["小绿"] == 18 :
print("小黄、小红、小绿三个中至少有一个的年龄等于18岁")
运行结果2:
小黄、小红、小绿三个中至少有一个的年龄等于18岁
if…else
对于一件事有事实和非事实之分,而python中的条件判断也是可以做到这两种的区分的。
语法格式:
if 条件表达式:
需要执行的语句1
需要执行的语句2
...
else:
需要执行的语句3
需要执行的语句4
...
需要执行的语句5
注意:如果 if 的条件成立之后,会执行 if 后面缩进的内容,而如果 if 后面的条件没有成立,则会执行 else 后面缩进的内容;而没有缩进的内容与本次条件判断没有任何关系,不受条件的成立与否的影响。
代码示例:
num = 7
print("下面我们进行猜数字游戏,请在0~9之间猜一个数字")
guess_str = input("请猜一个数字:")
guess_num = int(guess_str)
if guess_num != num :
if guess_num > num :
print("比你刚刚输入的数字要小哦")
else :
print("比你刚刚输入的数字要大哦")
else :
print("你猜对了,就是数字7")
运行结果:
下面我们进行猜数字游戏,请在0~9之间猜一个数字
请猜一个数字:8
比你刚刚输入的数字要小哦
示例讲解:
第3行:input()是一个输入函数,用来获取用户在键盘输入的内容,该内容最终保存到guess_str中,是个字符串来的哦!!!
第4行:因为字符串与int类型无法直接比较,所以我们需要将guess_str转换成int,这个时候就轮到int()出场了。int()的作用是拿到()里变量的内容,
并返回该内容的int值。而当()里的内容无法转换成int类型时,程序会报错哦。
第5行:判断输入的数字是否不等于数字7
第6行:进行条件判断的嵌套,当输入的数字不等于7时,那么再判断输入的数字是否大于数字7
if…elif…else
在实际中,有些场景使用 if…else… 会过于冗余与麻烦。例如,在给学生成绩划分A、B、C、D等级的时候,如果每个等级我们都使用 if…else… ,那么判断会比较多,这个时候我们可以引入 ==if…elif…else == 进行判断。
语法格式:
if 条件表达式1:
需要执行的语句1
需要执行的语句2
...
elif 条件表达式2:
需要执行的语句3
需要执行的语句4
...
else:
需要执行的语句5
需要执行的语句6
...
需要执行的语句7
代码示例:
result = 98
if result >= 95 :
print("该成绩为A级")
elif result >= 85 :
print("该成绩为B级")
elif result >= 75 :
print("该成绩为C级")
else :
print("该成绩为D级")
运行结果:
该成绩为A级
模式匹配
当如果一个情况有许多种结果的时候,使用 if 会让代码显得杂乱,这个时候我们就可以使用 match 来处理这种有多种情况的判断了。
语法格式:
match 变量/条件表达式:
case 值1:
需要执行的语句1
case 值2:
需要执行的语句2
case 值3:
需要执行的语句3
...
case _:
需要执行的语句n
当变量/表达式的值与case中的值匹配,则会执行对应匹配的语句,如果没有一个匹配的话,则会执行case _:后面的语句。其中case _:包括它后面缩进的内容是可有可无的,如果不加的话,在没有任何一个case匹配的时候,会直接结束match的内容,到后续内容。
代码示例1:
result = "Python"
match result:
case "C":
print("This is C")
case "C++":
print("This is C++")
case "Python":
print("This is Python")
运行结果1:
This is Python
match匹配还可以进行一些比较复杂的匹配。
代码示例2:
result = 78
match result:
case 95 | 96 | 97 | 98 | 99 | 100:
print("A级")
case x if x >= 85:
print("B级")
case x if x >= 75:
print("C级")
case _:
print("D级")
运行结果2:
C级
示例讲解2:
第3行:match不仅仅可以匹配单个值,还可以进行多个值的匹配,使用 | 进行连接即可,只要值在这些case里面的话,那么就可以执行该条case之后的
内容。
第5行:case x if x >= 85表示如果result >= 85成立,那么就会把result的值赋给x,如果不成立那么就会进行匹配下一条case语句。以示例来看,
因为78 不大于等于85,所以跳转到下一条case语句。
第7行:因为78大于75,所以判断成立,那么就把78的值赋给x,这样整条case就变成了“case 78”:。换成其他值类似。