Python---条件判断与模式匹配

条件判断

  在我们的日常生活中存在着许多判断。例如,我们在煮开水的时候,需要查看水是否沸腾了,如果沸腾了就关火。在这个例子中,查看水是否沸腾就是我们需要判断的条件,关火就是条件成立之后需要采取的动作。
  在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岁

  条件表达式中不仅仅可以接一个表达式,还可以通过andor进行拼接多个条件。
  代码示例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 变量/条件表达式:
		case1:
			需要执行的语句1
		case2:
			需要执行的语句2
		case3:
			需要执行的语句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”:。换成其他值类似。
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凛雨a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值