多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Python27:核心语法-流程控制语句-match模式匹配

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(× 指令无效重新输入)声明本篇学习笔记参考黑马程序员相关课程部分素材来源于网络公开资料及本人补充文中为个人整理复盘仅供学习交流使用。
返回列表