Python switch(多分支选择)的实现
Python 中没有 switch/case 语法,如果使用 if/elif/else 会出现代码过长、不清晰等问题。
而借助字典就可以实现 switch 的功能
示例:
def case1(): # 第一种情况执行的函数
print('This is the case1') def case2(): # 第二种情况执行的函数
print('This is the case2') def case3(): # 第三种情况执行的函数
print('This is the case3') def default(): # 默认情况下执行的函数
print('No such case')
switch = {'case1': case1, # 注意此处不要加括号
'case2': case2, # 注意此处不要加括号
'case3': case3, # 注意此处不要加括号
} choice = 'case1' # 获取选择
switch.get(choice, default)() # 执行对应的函数,如果没有就执行默认的函数
switch.get(choice, default)() 先去字典中查找 key 之后执行以 key 对应的 value 为函数名的函数,如果没有找到相应的 key 就执行默认函数。
Python switch(多分支选择)的实现的更多相关文章
- Python学习笔记(Ⅱ)——循环/选择/函数
		
一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...
 - if语句和switch语句的选择与区别
		
if语句和Switch语句的选择 if 结构 基本if选择结构: 处理单一或组合条件的情况 if-else选择结构:处理简单的条件分支情况 多重if选择结构:处理复杂的条件分支情况 嵌套if选择结构: ...
 - switch多分支语句
		
1.switch多分支语句的语法 switch(表达式){ case 常量值:要执行的语句; break; case 常量值:要执行的语句; break; case 常量值:要执行的语句; break ...
 - JAVA if条件语句,switch多分支结构,与逻辑运算符
		
一.if条件语句 示例: import java.util.Scanner; public class Test{ public static void main(String[] args){ Sc ...
 - SpringBoot系列——利用系统环境变量与配置文件的分支选择实现“智能部署”
		
前言 通过之前的博客:SpringBoot系列——jar包与war包的部署,我们已经知道了如果实现项目的简单部署,但项目部署的时候最烦的是什么?修改成发布环境对应的配置!数据库连接地址.Eureka注 ...
 - 【2017-2-23】C#switch case分支语句,for循环语句
		
switch case分支语句 switch(一个变量值) { case 值:要执行的代码段;break; case 值:要执行的代码段;break; … default:代码段;break;(def ...
 - 3. Python中的分支判断、循环
		
本文利用的是Python 3.x版本,建议学习3.x版本 Python中的分支判断.循环 1. 分支条件判断 1.1 比较操作 以下是数之间常见的比较操作,例如5>3就是数学意义上的比较,5是大 ...
 - python算法与数据结构-选择排序算法(33)
		
一.选择排序的介绍 选择排序(Selection sort)是一种简单直观的排序算法.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素, ...
 - MyBatis3_[tp_41-42-43]-_动态sql_trim_自定义字符串截取_choose分支选择_update的set与if-trim 结合的动态更新
		
笔记要点出错分析与总结 /** 笔记: * 查询的时候,如果某些条件,没带可能SQL拼装会有问题; * 1.-->给where 后面加上 1=1, 以后的条件都and XXX * 2. < ...
 
随机推荐
- U3D外包团队:五款IDE推荐!
			
1. Jetbrains RubyMine RubyMine是由捷克Jetbrains公司开发的,目前可提供使用的版本有RubyMine 5.4.而且RubyMine 5.4同时也为Rails 4的发 ...
 - 路由表flags的U值引起的能ping通网关,ping不通其它网段的案例
			
故障的: 正常的: 初步分析: 看路由表的flags ,之前故障时是U.现在正常的是UG查了下说明,应该是这个原因.U — 路由是活动的G — 路由指向网关
 - 相似性 similarity | Pearson | Spearman | p-value | 相关性 correlation | 距离 distance | distance measure
			
这几个概念不能混淆,估计大部分人都没有完全搞懂这几个概念. 看下这个,非常有用:Interpret the key results for Correlation euclidean | maximu ...
 - LeetCode--023--合并K个排序链表
			
合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1-&g ...
 - SQL SERVER 连接查询(join...on...)
			
SQL SERVER联结查询包含inner join,left join,right join,outer join (on)四种. [inner join]:行数为满足条件n*m,并且on的条件对两 ...
 - 『PyTorch × TensorFlow』第十七弹_ResNet快速实现
			
『TensorFlow』读书笔记_ResNet_V2 对比之前的复杂版本,这次的torch实现其实简单了不少,不过这和上面的代码实现逻辑过于复杂也有关系. 一.PyTorch实现 # Author : ...
 - html 存放PDF文档
			
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="100%" hei ...
 - a*b高精度数组算法
			
#include<stdio.h> #include<string.h> int main() { ]={},b[]={},c[]={},len1=,len2=; ],str2 ...
 - NodeJS中使用swig模板引擎
			
NodeJS中的默认引擎是jade有点过于复杂,而且不是以HTML为基础的,学习成本和前端适应成本都很大.而ejs虽然简单,但不支持模板导入,而且效率一般. swig的语法简单,学习成本很低,符合常规 ...
 - Mysql优化系列之——优化器对子查询的处理
			
根据子查询的类型和位置不同,mysql优化器会对查询语句中的子查询采取不同的处理策略,其中包括改写为连接(join),改写为半连接(semi-join)及进行物化处理等. 标量子查询(Scalar S ...