python技巧 switch case语句

不同于C语言和SHELL,python中没有switch case语句,关于为什么没有,官方的解释是这样的

使用Python模拟实现的方法:

def switch_if(fun, x, y):
    if fun == ‘add‘:
        return x + y
    elif fun == ‘sub‘:
        return x - y
    elif fun == ‘mul‘:
        return x * y
    elif fun == ‘div‘:
        return x / y
    else:
        return None

def switch_dict(fun, x, y):
    return {
        ‘add‘: lambda: x + y,
        ‘sub‘: lambda: x - y,
        ‘mul‘: lambda: x * y,
        ‘div‘: lambda: x / y,
    }.get(fun,None)()

print("switch_if(‘add‘,1,2):",switch_if(‘add‘,1,2))
print("switch_if(‘sub‘,1,2):",switch_if(‘sub‘,1,2))
print("switch_if(‘mul‘,1,2):",switch_if(‘mul‘,1,2))
print("switch_if(‘div‘,1,2):",switch_if(‘div‘,1,2))

print("switch_dict(‘add‘,1,2):",switch_dict(‘add‘,1,2))
print("switch_dict(‘sub‘,1,2):",switch_dict(‘sub‘,1,2))
print("switch_dict(‘mul‘,1,2):",switch_dict(‘mul‘,1,2))
print("switch_dict(‘div‘,1,2):",switch_dict(‘div‘,1,2))

switch_if(‘add‘,1,2): 3
switch_if(‘sub‘,1,2): -1
switch_if(‘mul‘,1,2): 2
switch_if(‘div‘,1,2): 0.5
switch_dict(‘add‘,1,2): 3
switch_dict(‘sub‘,1,2): -1
switch_dict(‘mul‘,1,2): 2
switch_dict(‘div‘,1,2): 0.5

原文地址:https://www.cnblogs.com/flashBoxer/p/9990627.html

时间: 2024-11-05 18:51:34

python技巧 switch case语句的相关文章

Python | 基础系列 ·?Python为什么没有switch/case语句?

与我之前使用的所有语言都不同,Python没有switch/case语句.为了达到这种分支语句的效果,一般方法是使用字典映射: def numbers_to_strings(argument): switcher = { 0: "zero", 1: "one", 2: "two", } return switcher.get(argument, "nothing") 这段代码的作用相当于: function(argument)

c++模板元编程五:switch/case语句编译时运行

2.4 switch/case 替代 现在模拟switch/case语句,不过也是在编译期运行.先看调用代码和输出结果 // test case cout << "test case" << endl; Case<2>::Run(); test case case 2 实现代码很简单,还是模板特化 template<int v> class Case { public: static inline void Run() { cout &l

Switch Case语句中多个值匹配同一个代码块的写法

switch ($p) { case 'home': case '': $current_home = 'current'; break; case 'users.online': case 'users.location': case 'users.featured': case 'users.new': case 'users.browse': case 'users.search': case 'users.staff': $current_users = 'current'; break

java中的Switch case语句

java中的Switch case 语句 在Switch语句中有4个关键字:switch,case break,default. 在switch(变量),变量只能是整型或者字符型,程序先读出这个变量的值,然后在各个"case"里查找哪个值和这个变量相等,如果相等,则条件成立,程序执行相应的分支,直到碰上break或有switch语句结束. 有几个需要着重注意的地方. 第一,前面说了switch(变量),只能是整型和字符类型. 第二,case之后是直接的常量数值. 第三,break使得程

C语言中switch...case语句中break的重要性

在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题.话不多说,直接举例子: 例子1: switch(fruit) { case 1:printf("apple"); break; case 2:printf("banana"); break; case 3:printf("orange"); break; case 4:printf("pear"); break; cas

switch case 语句

Switch case 语句 输入一个年月日,判断是这一年的第几天? Console.WriteLine("请输入年:"); int year = int.Parse(Console.ReadLine()); Console.WriteLine("请输入月:"); int month = int.Parse(Console.ReadLine()); Console.WriteLine("请输入日:"); int day = int.Parse(C

c++中switch case语句多个值同个语句块写法

switch case语句: 1 switch(表达式) 2 { 3 case 常量表达式1: 4 { 5 语句块1: 6 break: 7 } 8 …… 9 case 常量表达式n: 10 { 11 语句块n: 12 break: 13 } 14 default: 15 { 16 语句块n+1: 17 } 18 } 当碰到多个常量使用同一语句块时,我习惯性用了pascal的写法,即如case 1..3,5这样子,而正确的写法应该是: 1 case 1:case 2:case 3: 2 { 3

Java switch case 语句

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断. class Test { public static void main(String args[]){ //char grade = args[0].charAt(0); char grade = 'C'; switch(grade) { case 'A' : S

逆向知识第九讲,switch case语句在汇编中表达的方式

一丶Switch Case语句在汇编中的第一种表达方式 (引导性跳转表) 第一种表达方式生成条件: case 个数偏少,那么汇编中将会生成引导性的跳转表,会做出 if else的情况(类似,但还是能分辨出来的) 1.高级代码: #include "stdafx.h" int main(int argc, char* argv[]) { switch(argc) { case 0: printf("case 0\n"); break; case 1: printf(&