PythonStudy——Python 中Switch-Case 结构的实现

学习Python过程中,发现Python没有Switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现。所以不妨自己来实现Switch-Case功能。

方法一

通过字典实现

def foo(var):
    return {
        ‘a‘: ‘1‘,
        ‘b‘: ‘2‘,
        ‘c‘: ‘3‘
    }.get(var, ‘error‘)   # ‘error‘为默认返回值,可自设置

print(foo(‘a‘))
print(foo(‘b‘))
print(foo(‘c‘))

Output:123

方法二

通过匿名函数实现

def foo(var,x):
    return {
            ‘a‘: lambda x: x+1,
            ‘b‘: lambda x: x+2,
            ‘c‘: lambda x: x+3,
    }[var](x)

原文地址:https://www.cnblogs.com/tingguoguoyo/p/10721344.html

时间: 2024-11-19 10:55:17

PythonStudy——Python 中Switch-Case 结构的实现的相关文章

java中switch case和break使用

switch只能比较数值或字符或者类对象 首先看看switch的括号,当中放置您要取出数值的变量.取出数值之后,程序会开始与case中所设定的数字或字符做比较, 如果符合就执行其中的语句,直到遇到break后离开switch程序块:如果没有符合的数值或字符,则会执行default后的语句, default不一定需要:如果没有默认要处理的动作,可以省去这个部分 实例如下: @Test public void switchCase(){ this.net(2); } private void net

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':       

Python中的循环结构

Python中的比较运算符: Python中的关系运算符: 循环是为了解决重复出现的问题而设计. 1. for 实现 1+..+100求和 1 sum=0 2 for i in range(1,101): #range(start,stop,step) 3 sum+=i 2. while 1 i=1 2 sum=0 3 while i<101: 4 sum+=i 5 i+=1 注意: 在Python没有++ 和 -- 运算符 循环语句与判断条件语句结合使用时,注意break跳出所在最小循环,而c

python中的行结构和缩进

程序中每条语句都以换行符结束 可以使用续行符(\)反斜杠将长语句分为几行  wather_is_hot  = 1;  watherer = 0;  if(wather_is_hot ==1) and    (watherer==0):    print("杯子里的水是热的");  有两种列外的情况下 一个语句不适用反斜线也可以跨行  1,单一语句可以跨行 如:含有 小括号 中括号 花括号时可以多行书写  例:  dict = {   'title':'行者',   'name' :'武

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

Python中Swithch Case语法实现

而python本身没有switch语句,解决方法有以下3种:A.使用dictionaryvalues = { value1: do_some_stuff1, value2: do_some_stuff2, ... valueN: do_some_stuffN, }values.get(var, do_default_stuff)()B.使用lambdaresult = { 'a': lambda x: x * 5, 'b': lambda x: x + 7, 'c': lambda x: x -

js中switch/case分支的值可以是变量或表达式

在一些高级语言如C#中,switch分支的值只能是常量,而js中可以是变量或表达式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.

Python中的分支结构和循环结构

一.分支结构 语法: if  条件  :     .... else :    .... 例子: num = int(input("输入一个整数:")) if num<=10 : print("你输入的数小于等于10",end="\t") if num<5 : print("并且你的这个数小于5") else : print("但是他大于等于5") else: print("你输入的数

Python | 基础系列 &#183;?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)