python里有没有类似与c语言switch...case...的条件判断语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python里有没有类似与c语言switch...case...的条件判断语句相关的知识,希望对你有一定的参考价值。

有if 、while循环。if elif else 可以实现你说的这个switch。

num = raw_input('please input number :')
if num < 0:
print 'num 小于 0'
elif num = 0:
print 'num等于0'
elif num >0:
print 'num 大于0'
else:
print 'num 不是数字 '

大体是这么个意思了,数字判断,要转换类型。
参考技术A 1、C语言里switch 的本质是什么呢?如果会反汇编的话,可以自己研究发现,switch实际上有一个hash表,系统是通过查表来实现跳转的。
2、弄清这个问题之后,转到python的话,就可以用dict来实现:
假定输入in1 执行函数fun1,输入in2 执行函数fun2,输入in3 执行函数fun3,
d = 'in1':fun1,'in2':fun2,'in3':fun3
调用的时候就这么写,arguments是输入参数
参考技术B 没有的,只能if elif本回答被提问者采纳

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

 








































以上是关于python里有没有类似与c语言switch...case...的条件判断语句的主要内容,如果未能解决你的问题,请参考以下文章

C++怎么用switch语句判断输入的字符

Python里怎么实现switch case

学习Python的体会

C语言中 For语句后面的括号里有两个分号是啥意思啊?

Python 类似switch/case语句实现方法 获取文件内容匹配函数并执行

switch语句的用法?