Python27:核心语法-流程控制语句-match模式匹配
模式匹配 match... case结构模式匹配就是用一个清晰的 模板 去精准地匹配数据的结构和内容匹配成功则执行相应的操作。执行流程1、首先计算match指定的表达式的值。2、从上到下依次和case后面的值进行匹配匹配正确就执行对应语句。3、如果前面所有的case都没有匹配上就会执行默认的case _。# 工作日程安排 day input(请输入星期几(1-7)) match day: case 1: print(周一工作会议日) case 2: print(周二学习培训日) case 3: print(周三项目开发日) case 4: print(周四代码审查日) case 5: print(周五总结规划日) case 6 | 7: # 其中的| 表示或的关系匹配多个模式中的任意一个 print(周末休息放松日) case _: # 匹配其他所有情况 print(输入错误)# 实现一个计算器可以实现 - * / 运算用户输入需要运算的两个数以及运算符之后就可以进行计算。 num1 float(input(请输入第一个数)) num2 float(input(请输入第二个数)) oper input(请输入运算符 - * / ) match oper: case : print(f{num1} {num2} {num1 num2}) case -: print(f{num1} - {num2} {num1 - num2}) case *: print(f{num1} * {num2} {num1 * num2}) case / if num2 ! 0: # if条件成立才匹配这个case print(f{num1} / {num2} {num1 / num2}) case _: print(操作不支持) 请输入第一个数10 请输入第二个数2 请输入运算符 - * / / 10.0 / 2.0 5.0 请输入第一个数5 请输入第二个数0 请输入运算符 - * / / 操作不支持 match...case 是3.10版本中的新语法应用场景总结match基于某个变量的多个固定值进行分支判断时可以使用match模式匹配if条件判断涉及复杂的逻辑判定、范围比较及组合条件时# 案例请你编写一个游戏角色移动控制系统根据玩家输入的不同指令控制游戏角色执行相应的输出控制台。 # 游戏角色移动控制系统 —— 使用match case 写法 cmd input(请输入控制指令) match cmd: case 上 | w | W: print(角色向上移动) case 下 | s | S: print(角色向下移动) case 左 | a | A: print(角色向左移动) case 右 | d | D: print(角色向右移动) case 跳 | : print(角色跳跃) case 攻击 | j | J: print(角色发动攻击) case 退出 | esc | ESC: print(角色退出游戏) case _: print(输入指令无效请重新输入) # 循环进阶版更像游戏 # 循环版游戏控制match...case 写法 print( 游戏角色控制系统 ) while True: #效果就是输一次指令 → 执行 → 又可以输 → 又执行 → 一直玩下去 cmd input(请输入指令) match cmd: case 上 | w | W: print(→ 角色向上移动) case 下 | s | S: print(→ 角色向下移动) case 左 | a | A: print(→ 角色向左移动) case 右 | d | D: print(→ 角色向右移动) case 跳 | : print(→ 角色跳跃) case 攻击 | j | J: print(→ 角色发动攻击) case 退出 | esc | ESC: print(→ 退出游戏游戏结束) break case _: print(× 指令无效) # 游戏角色移动控制系统 用 if...elif...else实现 # 接收玩家输入判断指令输出对应动作 # 1. 获取玩家输入的指令 cmd input(请输入控制指令(上/下/左/右/跳/攻击/退出 或 w/s/a/d/j/esc等): ) # 2. 判断指令执行对应动作 if cmd in [上, w, W]: print(角色向上移动) elif cmd in [下, s, S]: print(角色向下移动) elif cmd in [左, a, A]: print(角色向左移动) elif cmd in [右, d, D]: print(角色向右移动) elif cmd in [跳, ]: # 空格直接写一个引号空格 print(角色跳跃) elif cmd in [攻击, j, J]: print(角色发动攻击) elif cmd in [退出, esc, ESC]: print(角色退出游戏) else: # 输入不识别的情况 print(输入指令无效请重新输入) # 进阶版可以一直玩直到输入退出更像真实游戏 # 游戏角色移动控制系统 - 循环版可一直操作 print( 游戏角色控制系统 ) print(操作指令上/下/左/右/跳/攻击/退出) print(快捷键w s a d j esc) print(输入 退出 结束游戏\n) while True: # 无限循环直到输入退出 cmd input(请输入指令) if cmd in [上, w, W]: print(→ 角色向上移动) elif cmd in [下, s, S]: print(→ 角色向下移动) elif cmd in [左, a, A]: print(→ 角色向左移动) elif cmd in [右, d, D]: print(→ 角色向右移动) elif cmd in [跳, ]: print(→ 角色跳跃) elif cmd in [攻击, j, J]: print(→ 角色发动攻击) elif cmd in [退出, esc, ESC]: print(→ 角色退出游戏游戏结束) break # 跳出循环结束程序 else: print(× 指令无效重新输入)声明本篇学习笔记参考黑马程序员相关课程部分素材来源于网络公开资料及本人补充文中为个人整理复盘仅供学习交流使用。

相关新闻

常用 Prompt 每次都要重贴?WES Code 技能系统(Skills)怎么用

常用 Prompt 每次都要重贴?WES Code 技能系统(Skills)怎么用

目录一、一个技能长什么样二、预装的 26 个技能三、技能是怎么加载的四、在对话里调用技能五、写一个自己的技能六、它做不到的地方小结用 AI 写代码久了,总有几套做法要反复交代:review 时看哪几个维度,提交信息按什么格式写,改数…

2026/10/5 19:53:53 阅读更多 →
Agent把错误信息写进记忆后,你怎么办?TaoToken视角下的记忆污染排查与修复

Agent把错误信息写进记忆后,你怎么办?TaoToken视角下的记忆污染排查与修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 19:47:20 阅读更多 →
SWE-bench Verified 工业实测:三大模型跨文件检索与自愈修复真实成功率

SWE-bench Verified 工业实测:三大模型跨文件检索与自愈修复真实成功率

SWE-bench Verified 工业实测:三大模型跨文件检索与自愈修复真实成功率在代码大模型的宣传战役中,大多数厂商依旧乐此不疲地拿 HumanEval 或 MBPP 的单函数补全分数作为核心卖点。然而,任何一个在真实软件工程前线摸爬滚打过的开发者都知道&a…

2026/10/5 19:50:22 阅读更多 →

最新新闻

python-抖音 urlopen 请求头配置:TaoToken 统一 Key 通道下 get 请求抓取实践

python-抖音 urlopen 请求头配置:TaoToken 统一 Key 通道下 get 请求抓取实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 22:05:10 阅读更多 →
配置光猫的上网与IPTV通过LAN1口单线复用

配置光猫的上网与IPTV通过LAN1口单线复用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 22:02:09 阅读更多 →
STM32F745VG驱动MR25H40CDF MRAM:SPI配置与工业存储实战

STM32F745VG驱动MR25H40CDF MRAM:SPI配置与工业存储实战

1. 为什么工业现场还在用 MRAM,而不是继续堆 Flash如果你拆过工业网关、PLC 扩展模块或者电力监测终端,大概率会在板子上看到一颗 8 脚的小芯片,旁边紧挨着一颗 STM32 或者类似的 MCU。过去十年,这个位置基本被 SPI Flash 和 EEPR…

2026/10/5 22:02:09 阅读更多 →
STM32L496ZG 与 MR25H40CDF MRAM 高速存储方案实战

STM32L496ZG 与 MR25H40CDF MRAM 高速存储方案实战

1. 为什么偏偏是 MRAM 加 STM32L496ZG 这个组合搞嵌入式存储选型这些年,我经手的方案从 24C02 这种 I2C EEPROM 到 W25Q 系列 SPI Flash,再到铁电存储器 FRAM,几乎把能踩的坑都踩了一遍。直到项目里开始频繁出现“高频写入、掉电不能丢、还要…

2026/10/5 22:01:08 阅读更多 →
工业嵌入式存储方案:SPI MRAM与8位MCU的实战配置与掉电保护

工业嵌入式存储方案:SPI MRAM与8位MCU的实战配置与掉电保护

嵌入式存储方案里,SPI接口的MRAM和8位MCU的组合,算是工业场景里一个相当务实的搭配。MR25H40CDF这颗4Mb的磁性随机存储器,配合PIC18F96J94这颗带自编程能力的8位微控制器,能解决不少传统方案里掉电丢数据、写入寿命不够、写入速度…

2026/10/5 22:01:08 阅读更多 →
STM32L496ZG驱动MR25H40CDF:MRAM嵌入式存储实战

STM32L496ZG驱动MR25H40CDF:MRAM嵌入式存储实战

1. 为什么 MRAM 在嵌入式存储里越来越受关注搞过工业设备或者数据采集终端的朋友应该都有体会,选存储芯片这件事,看着简单,实际上坑特别多。EEPROM 写入慢、寿命有限;NOR Flash 擦除块大、写入前必须擦除;FRAM 速度快但…

2026/10/5 22:00:06 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →