Введение в Python Switch Statement

Оператор switch является очень полезной и мощной функцией программирования. Это альтернатива лестничной инструкции if-else-if и обеспечивает лучшую производительность и более управляемый код, чем лестничная инструкция if-else-if. Большинство языков программирования (например, Java, C и т. Д.) Предлагают операторы switch, но в языке Python нет операторов switch. Однако, если вам нравится переключать операторы регистра, есть очень эффективный способ реализовать функцию оператора переключения регистра в Python. Этот учебник поможет вам реализовать его.

блок-схема

Оператор switch в каждом языке программирования имеет одинаковую функциональность, но немного другой синтаксис. Язык Python не предоставляет никаких встроенных операторов switch. Мы можем реализовать эту функцию с тем же потоком и функциональностью, но с другим синтаксисом и реализацией, используя Python Dictionary.

Синтаксис оператора Switch

Просто посмотрите на два разных синтаксиса оператора switch. Первый оператор показывает стандартный синтаксис операторов switch в других языках программирования, таких как C, Java и т. Д. Второй оператор представляет собой реализацию оператора Switch в Python. Вы можете четко объяснить, насколько они похожи по функциональности, но различаются по реализации.

1. Переключение на другие языки (c, Java, ..)

Синтаксис:

switch(N)
(
case 1: Statement if N = 1;
break;
case 2: Statement if N = 2;
break;
::
case n: Statement if N = n;
break;
default: Statement if N doesn't match any
)

2. Переключить реализацию в Python

Синтаксис:

switcher=
(
key_1: value_1/method_1(),
key_2: value_2/method_2(),
key_3: value_3/method_3(),
::
key_n: value_n/method_n(),
)
key = N
value = switcher.get(key, "default")

Работа оператора Switch

  • Работа стандартного оператора switch на любом языке программирования аналогична. Он состоит из нескольких случаев, каждый из которых имеет блок кода и оператор break.
  • Входной аргумент сравнивается с несколькими случаями один за другим. Если аргумент соответствует любому из случаев, то выполняется соответствующий оператор блока, и элемент управления выходит из оператора switch в операторе break.
  • Если ни один из случаев не совпадает с входным аргументом, выполняется инструкция блока по умолчанию.
  • В реализации Python операторов switch мы рассматриваем словарь Python как переключатель, а ключи словаря как случаи. Здесь мы вызываем функцию get () словаря с необходимыми аргументами, т. Е. Ключом ввода и значением по умолчанию.
  • Если клавиша ввода совпадает с любой из клавиш словаря, возвращается соответствующее значение. Однако, если клавиша ввода не совпадает ни с одной из клавиш словаря, будет возвращено значение по умолчанию.

Реализация оператора Switch в Python

Как мы знаем, оператор switch case и if-else-if ladder оператор чередуются друг с другом. И то и другое можно использовать для достижения одной и той же цели, но оператор переключения регистра обеспечивает лучшую производительность и более управляемый код, чем оператор релейной логики if-else-if. Язык Python не имеет операторов switch, но мы можем реализовать аналогичную функциональность, используя Python Dictionary.

В следующем разделе мы увидим реализацию каждого с примером.

Пример № 1

Использование if-else-if ladder - альтернатива для переключения оператора регистра. В этом примере мы использовали оператор лестницы if-else-if, чтобы получить день недели. Для того же варианта использования мы также увидим реализацию состояния переключателя в Python.

Код:

def get_week_day(argument):
if(argument == 0):
day="Sunday"
elif(argument == 1):
day="Monday"
elif(argument == 2):
day="Tuesday"
elif(argument == 3):
day="Wednesday"
elif(argument == 4):
day="Thursday"
elif(argument == 5):
day="Friday"
elif(argument == 6):
day="Saturday"
else:
day="Invalid day"
return day
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))

Выход:

Пример № 2

Реализация оператора switch с использованием словаря строк. В языке Python нет операторов switch. Однако мы можем эффективно реализовать функцию оператора switch в Python, используя словарь, как показано ниже.

Пояснение: словарь в Python - неупорядоченная коллекция пар ключ и значение. В приведенном ниже фрагменте кода переключатель представляет собой словарную переменную, в которой содержатся пары ключ: значение, подобные случаям, подобным переключателю.

Используя метод get (), мы можем получить доступ к элементу словаря, передав аргументы в качестве ключа и необязательное значение по умолчанию. Значение по умолчанию помогает реализовать «регистр по умолчанию» оператора switch.

Код:

def get_week_day(argument):
switcher = (
0: "Sunday",
1: "Monday",
2: "Tuesday",
3: "Wednesday",
4: "Thursday",
5: "Friday",
6: "Saturday"
)
return switcher.get(argument, "Invalid day")
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))

Выход:

В этом примере давайте передадим 6 в качестве входного аргумента или входной клавиши, которые будут искать в ключах словаря (переключателя). Поскольку ключ = 6 найден, он вернет значение как суббота. Теперь передайте 8 как ключ ввода, который будет найден в ключах словаря (переключателя). Поскольку ключ = 8 не найден, он вернет значение по умолчанию как недопустимый день.

Пример № 3

Реализация оператора switch с использованием словаря отображения функций. В приведенном выше примере значения словаря имеют строковый тип данных, т.е. постоянные. Но интересно знать, что значения словаря Python могут быть любого типа данных.

Значения словаря Python могут быть как константами (целыми числами, строками), так и функциями. В этом примере мы реализуем оператор switch, который также будет поддерживать вызов функции для каждого случая переключения, используя словарь функций, как показано ниже.

Код:

def get_week_day(argument):
def zero():
return "Sunday"
def one():
return "Monday"
def two():
return "Tuesday"
def three():
return "Wednesday"
def four():
return "Thursday"
def five():
return "Friday"
def six():
return "Saturday"
switcher = (
0: zero(),
1: one(),
2: two(),
3: three(),
4: four(),
5: five(),
6: six()
)
return switcher.get(argument, "Invalid day")
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))

выход:

Вывод

Как мы видели выше, один и тот же вариант использования может быть реализован как оператором switch switch, так и оператором if-else-if ladder. Но оператор Switch предоставляет более управляемый и читаемый код, чем оператор «если-еще-если-лестница». Мы также видели, что в языке Python нет операторов switch, но мы можем реализовать его более эффективным способом, используя Python Dictionary.

Рекомендуемые статьи

Это руководство по Python Switch Statement. Здесь мы обсуждаем синтаксис, блок-схему и работу оператора python switch вместе с примерами и реализацией. Вы также можете посмотреть следующие статьи, чтобы узнать больше

  1. Наследование в Python
  2. Перегрузка Python
  3. Словарь в Python
  4. Словарь в Python