2015-09-20 2 views
1

выключатель не встроен в языке 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 Pleae скажите мне какой-нибудь метод для его использования?

ответ

1

Как вы сказали, в Python нет встроенных функций для коммутаторов, однако есть несколько способов его достижения.

Первый подход (не большое решение), было бы просто использовать, если заявления:

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 в соответствии с ключом и значением, аналогично функциональным возможностям оператора 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" 

Он начинается с определения всех возможных «ключи» (значения в словаре), что оператор переключатель делают сдвиг будет использовать для запуска функции , а затем он определяет функции ниже, основываясь на том, что называется «ключ» (значение словаря).

После того, как вы сделаете это, это так просто, как делать поиск по словарю:

options[num]() 

Я настоятельно рекомендую вам прочитать статью, что я связан с так как это поможет прояснить вещи вокруг заявления переключения регистра языка Python, или ее отсутствие.

+0

Можете ли вы рассказать мне, как использовать этот код для редактора? Я использую программное обеспечение pycharm, которое показывает ошибку: Traceback (последний последний звонок): Файл «C: /Users/NeErAj/PycharmProjects/demo/switch.py ", строка 1, в options = {0: ноль, NameError: имя 'ноль' не определено –

+0

Я не совсем уверен, что вы имеете в виду? Скажем, вы проверяли значение 'myVar' в случае коммутатора, что вы бы сделали, чтобы вызвать« переключатель », чтобы выполнить поиск в словаре:' options [myVar]() 'и он проверит значение' myVar 'против значений, как обычный коммутатор, и будет работать в зависимости от того, какой блок он соответствует. Это то, что вы имели ввиду? –

+0

Я хочу сказать, что как использовать параметр = {0, ноль .............. и как вызвать все методы, используя параметр, когда myVar присваивается любое значение –

-1

В Python нет чехла Switch (одна из тех, что печально относится к языку). Вместо этого вам придется использовать операторы elif (else if), как показано ниже.

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" 

Надеюсь, что это поможет!

Смежные вопросы