Python 基础知识 之 选择(分支)结构 + 模式匹配结构(match)

news/2025/1/12 19:20:03/文章来源:https://www.cnblogs.com/kyle-7Qc/p/18667185

选择结构

  • 按照条件选择执行不同的代码段

1. 单分支结构if语法结构

image

  • 执行流程:如果表达式的值为True,就执行语句块,如果表达式的值为False,就跳过语句块,继续执行下面的语句 ⭐

  • 注意: ⭐⭐⭐

  1. 表达式后面的冒号
  2. 缩进,python中通过缩进来控制程序逻辑
  • 示例;
# 1. 判断是否中奖
number = eval(input('请输入您的6位中将号码:'))  #eval将输入的类型(字符型)转化为int类型
# 使用if语句
if number == 987654: #等值判断print('中奖了')if number != 987654:print('您未中奖')
# 以上if判断的表达式,是通过比较运算符计算出来的,结果是布尔类型
--------------------------------------------------------------------------
# 2. 判断奇偶数
n = 98 # 赋值操作if n % 2:    # %取余操作 ,98%2的余数为0,0的布尔值为False,非0的布尔值为Trueprint('n是偶数')
else:print('n是计数')n = 98 # 赋值操作if not n % 2:   #not取反  not False的结果为Trueprint('n是偶数')
else:print('n是奇数')
------------------------------------------------
# 3.  判断一个字符串是否为空字符串
x = input('请输入一个字符串:')
if x: #在python中一切皆对象,每个对象都有一个布尔值,而非空字符串的布尔值是True,空字符串的布尔值为Falseprint('x是一个非空字符串')if not x:print('x是一个空字符串')
----------------------------------------------------
# 4. 表达式也可以是一个单纯的布尔类型flag = eval(input('请输入一个布尔类型True or False:')) #注意input输入的类型为str,
if flag:print('flag的值为True')
if not flag:print('flag的值为False')# 5. 使用if语句时,如果语句块中只有一句代码,可以将语句块直接写在冒号后面
a=10
b=8
if a>b:max = a                    ==> if a>b:
print('a和b的最大值为:',max)             max = a

2. 双分支结构if···else···语法结构

image

  • 示例:
# 1. 判断中奖使用if···else··语句
number = eval(input('请输入6位中奖号码:'))
if number == 987654: #等值判断print('中奖了')
else:print('您未中奖')
精简版:print('您中奖了' if number == 987654 else '您未中奖') #如果判断成立,输出if之前的语句,如果不成立,输出if之后的语句
----------------------------------------------------------
# 2. 判断生日那年的
birth = eval(input('birth: '))
if birth < 2000:print('00qian')
else:print('00hou')

3. 多分支结构

  • 多选一执行
    image
  • 示例
# 1. 判断bmi是否正常
tall = 1.78
weight = 60
bmi = (weight / tall **2 )
print (bmi)
if bmi < 18.5:print ('too thin')
elif 18.5 < bmi <25:print ('normal')
elif 25 < bmi <28:print('too weight')
elif 28< bmi <32:print ('fat')
else:print ('too fat')
-------------------------------------------------
# 2. 判断年龄
age = eval(input('age: '))
if (age < 6):print ("kid")
elif age < 18:print ('teenager')
else:print ('adult')
-------------------------------------------------------
# 3. 判断成绩
score = eval(input('请输入您的成绩:'))
if score < 0 or score > 100:print('成绩有误')
elif 90<= score<=100:print('A')
elif 80 <= score <= 90:print('B')
elif 70 <= score <= 80:print('C')
elif 60 <= score <= 70:print('D')
else:print('E')

4. 嵌套if使用

  • 单分支结构、双分支结构和多分支结构在实际开发中是可以互相嵌套使用的,内层的分支结构将作为外层分支结构的语句块使用
    image
  • 示例:
# 判断酒驾
answer = input("请问您喝酒了嘛?")
if answer == "y" or "Y":proof=eval(input('酒精含量:'))if proof < 20:print('构不成酒驾,祝您一路平安')elif proof < 80:  # 20<=proof<80print('已构成醉驾标准,请不要开车')else:print('已达到酒驾')
else:print('go')

5. 多个条件的连接

  • and(同时满足),or(其中之一满足)
  • 示例:
# 1. 使用and连接多个选择条件 (登录案例)
user_name = input('请输入用户名:')
pwd = input('请输入您的密码:')
if user_name == 'kyle' and pwd =='666':print('登录成功')
else:if user_name != 'kyle':print('用户名不对')else:print('密码不对')
---------------------------------------------------------
# 2. 使用or连接多个选择条件 (成绩案例)
score = eval(input('请输入您的成绩:'))
if score < 0 or score >100:print('成绩无效')
else:if 90 <= score <= 100:print(score,'A')elif 80 <= score <= 90:print(score,'B')elif 70 <= score <= 80:print(score,'C')elif 60 <= score <= 70:print(score,'D')else:print(score,'E')

模式匹配结构(match)

  • match ,case
  • 示例:
# 1. 判断年龄
# age = 20
age = eval(input('请输入您的年龄:'))
match age:case x if x < 10:print(f'< 10 years old: {x}','kid')case 10:print('10 years old.','children')case 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18:print('11~18 years old.','teenager')case _:print(age,'years old.','adult')
# 2. 判断成绩等级
score = input('请输入您的成绩等级:')
match score:case 'A'|'a':print('优秀')case 'B'|'b':print('良好')case 'C'|'c':print('及格')case 'D'|'d':print('差')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/868313.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中考英语优秀范文-热点话题-传统文化-003 Chinese Tea 中国茶

1 写作要求 第三次法国国际友好交流学校线上论坛拟于下周五举行。本期论坛的主题为“茶文化”,作为论坛特邀嘉宾,请你写一篇文章,向国际友好交流学校介绍中国的特色茶饮和中国茶文化。 内容包括: 1 茶的历史(中国人种茶、饮茶已有4000多年的历史)和种类(绿茶、红茶、乌龙…

Hetao P3804 Cut 题解 [ 蓝 ] [ AC 自动机 ] [ 差分 ]

AC 自动机简单题。Cut:AC 自动机简单题。思路 看见多个模式串以及求前缀,很显然能想到构建一个 AC 自动机。 那么在用 \(T\) 查询时,当前指针的深度就是该位置的最长前缀匹配长度。这个在字典树 insert 的时候就能求出来。 求出每一位的最长前缀后,因为这些部分都不能作为分…

Lec 14 文件系统与设备

Lec 14 文件系统与设备License 本内容版权归上海交通大学并行与分布式系统研究所所有 使用者可以将全部或部分本内容免费用于非商业用途 使用者在使用全部或部分本内容时请注明来源 资料来自上海交通大学并行与分布式系统研究所+材料名字 对于不遵守此声明或者其他违法使用本内…

Java基础学习(七)

Java基础学习(七):异常机制 目录Java基础学习(七):异常机制概念简单分类异常体系结构异常处理机制自定义异常 本文为个人学习记录,内容学习自 狂神说Java概念异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等 异常发生在程序运行期…

24. 基于项的控件

一、基于项的控件PySide6 有专门的显示数据的控件和存储数据的模型,可以显示和存储不同形式的数据。显示数据的控件分为两类,一类是基于 项(item)的控件,另一类是基于 模型(model)的控件,基于项的控件是基于模型的控件的简便类。基于项的控件把读取到的数据存储到项中,…

杂题选记

杂题选记在网上天天划水刷面经,见到 teaser 就记下来。我的想法是,把 8L 倒入 3L,把 3L 倒入 5L,把 8L 倒入 3L,把 3L 倒入 5L,这时候三个瓶子分别有 1L(8L) 2L(3L) 5L(5L) 括号里面表示瓶子最开始的容量。这时候把 1L 水倒掉,把容积为 8L 的瓶子里面的 2L 水倒到 容积为…

pytorch算子调用过程:以rand算子为例

通过pytorch的torch.profiler带调用栈采集运行过程可以看到如下信息,通过chrome://tracing查看,图上每个小条条表示一个traceEvent, json中的信息如下图所示,其中cat表示traceEvent的类型,有cpu_op,python_function等,前者表示torch的cpp代码中定义的操作,后者表示pytorc…

Wordpress更换域名后,网站显示框架和加载问题解决

最近建立了一个站点,由于先使用ip进行网站搭建,经过一段时间备案完成后,需要转成域名。直接在Wordpress后台操作后,直接导致网页框架显示异常,排版错乱,大概就是主题的框架无法加载导致的。 搞了很久,包括恢复数据库和重新建站都是这样,最终发现是伪静态的问题。 我是使…

【Weblogic T3协议】反序列化漏洞分析(上)

免责声明 此文章中所涉及的技术、思路和工具仅供网络安全学习为目的,不得以盈利为目的或非法利用,否则后果自行承担!一、前言 在初入安全的时候,就听说过weblogic的大名,当然听说的并不是weblogic如何如何好用,而是因为其漏洞出现频率实在是有点高...于是乎,便抱着学习的…

关于安卓edge无法播放Wordpress上传的mp4视频问题

使用默认插件上传后,电脑端可以播放视频,其他手机浏览器均可播放视频,但是安卓edge无法加载视频。 大概是如下图样子:经查发现电脑打开页面会显示站点部分不安全的提示,说明edge端做了一些阻挡处理,导致视频无法播放。找了一些资料后,发现可以自行修改加载视频的代码框架…

【bt下载软件qBittorrent-增强版】下载链接

原作者github项目地址:https://github.com/c0re100/qBittorrent-Enhanced-Edition 找到当前的最新版本根据自身需要选择下载版本,这里选的是windows版本

鸟哥的Linux私房菜 基础学习篇 第四版PDF、EPUB免费下载

Linux入门书升级版,适用Linux系统应用和开发及运维的人员,涵盖linux内核,命令行,嵌入式,基于CentOS,7.x适读人群 :Linux初学者 适合Linux管理员作为参考手册 Linux入门书升级版,适用Linux系统应用和开发及运维的人员,涵盖linux内核,命令行,嵌入式,基于CentOS,7.x电…