Как вы сказали, в 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, или ее отсутствие.
Можете ли вы рассказать мне, как использовать этот код для редактора? Я использую программное обеспечение pycharm, которое показывает ошибку: Traceback (последний последний звонок): Файл «C: /Users/NeErAj/PycharmProjects/demo/switch.py ", строка 1, в options = {0: ноль, NameError: имя 'ноль' не определено –
Я не совсем уверен, что вы имеете в виду? Скажем, вы проверяли значение 'myVar' в случае коммутатора, что вы бы сделали, чтобы вызвать« переключатель », чтобы выполнить поиск в словаре:' options [myVar]() 'и он проверит значение' myVar 'против значений, как обычный коммутатор, и будет работать в зависимости от того, какой блок он соответствует. Это то, что вы имели ввиду? –
Я хочу сказать, что как использовать параметр = {0, ноль .............. и как вызвать все методы, используя параметр, когда myVar присваивается любое значение –