如何在Python中使用switch?

时间:2015-09-20 04:09:41

标签: python-3.x switch-statement

开关不是用Python语言构建的,所以如何在python中为选择一个案例实现这个概念

在其他语言代码中是:

`switch(value)  {   
case 0:
        print("i'm in Case 0");
        break; 
case 1:
        print("i'm in Case 1");
        break; 
case 2:
        print("i'm in Case 2");
        break; 
case 4:
        print("i'm in Case 4");
        break;
default:
        print("Wrong Value");}

我如何在Python中使用这个概念请告诉我任何使用它的技术?

2 个答案:

答案 0 :(得分:1)

正如您所说,Python中的交换机没有内置功能,但有几种方法可以实现它。

第一种方法(不是一个很好的解决方案),就是简单地使用if语句:

if x == 0:
    print "X is 0\n"
elif x == 1:
    print "X is 1\n"
elif x == 2:
    print "X is 2r\n"
elif x == 3:
    print "X is 3\n"

第二种,更好的方法是在他的网站上使用Python Shrutarshi Basu所写的Python词典。他利用Python的词典来匹配键和值,类似于switch语句的功能。看看他提供的这个例子,以获得更好的想法:

options = {0 : zero,
                1 : sqr,
                4 : sqr,
                9 : sqr,
                2 : even,
                3 : prime,
                5 : prime,
                7 : prime,
}

def zero():
    print "You typed zero.\n"

def sqr():
    print "n is a perfect square\n"

def even():
    print "n is an even number\n"

def prime():
    print "n is a prime number\n"

首先定义所有可能的"键" (字典中的值)make-shift switch语句将用于触发函数,然后根据" key"定义下面的函数。 (字典值)被称为。

一旦你这样做,它就像做字典查找一样简单:

options[num]()

我强烈建议您阅读我已链接到的文章,因为它有助于澄清Python的switch-case语句或其缺失。

答案 1 :(得分:-1)

Python中没有Switch Case(这是该语言不幸的事情之一)。相反,您将不得不使用elif(否则如下)语句,如下所示。

if n == 0:
    print "You typed zero.\n"

elif n== 1 or n == 9 or n == 4:
    print "n is a perfect square\n"

elif n == 2:
    print "n is an even number\n"

elif  n== 3 or n == 5 or n == 7:
    print "n is a prime number\n"

else:
    print "You picked a weird number"

希望有所帮助!