Вступ до заяви про перемикач Python

Заява переключення - дуже корисна і потужна функція програмування. Це альтернатива оператору схожих сходів if-else-if і забезпечує кращу продуктивність та більш керований код, ніж оператор сходинки if-else-if. Більшість мов програмування (наприклад, Java, C тощо) пропонують оператори перемикання, але мова Python не має жодних операторів комутації. Однак, якщо вам подобається перемикання випадок регістру, у Python є дуже ефективний спосіб реалізувати функцію оператора вимикача. Цей підручник допоможе вам його реалізувати.

Блок-схема

Оператор перемикача в кожній мові програмування має однаковий функціонал, але дещо інший синтаксис. Мова Python не забезпечує вбудованих операторів комутації. Ми можемо реалізувати цю функцію з однаковим потоком та функціоналом, але з різним синтаксисом та реалізацією за допомогою Python Dictionary.

Синтаксис заяви про переключення

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

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")

Робота із заявою комутатора

  • Робота стандартного оператора перемикача на будь-якій мові програмування аналогічна. Він складається з декількох випадків, кожен з яких має блок коду та заяву про розрив.
  • Вхідний аргумент порівнюється з кількома випадками один за одним. Якщо аргумент збігається з будь-яким із випадків, то відповідний оператор блоку виконується, а керування виходить з оператора переключення на оператор break.
  • Якщо жоден із випадків не відповідає аргументу введення, тоді виконується оператор блоку за замовчуванням.
  • У реалізації Python перекладацьких операторів, ми розглядаємо словник Python як перемикач, а клавіші словника - як випадки. Тут ми називаємо функцію get () словника з необхідними аргументами, тобто ключ введення та значення за замовчуванням.
  • Якщо клавіша введення збігається з будь-якою з клавіш словника, то відповідне значення повертається. Однак якщо клавіша введення не збігається з жодною із клавіш словника, то значення за замовчуванням буде повернуто.

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

Як ми знаємо, оператор case switch і if-else-if оператор сходинки чергуються один з одним. Обидва можуть бути використані для досягнення однієї і тієї ж мети, але випадок випадку комутатора забезпечує кращу продуктивність та більш керований код, ніж оператор схожих даних if-else-if. Мова Python не має жодних операторів комутації, але ми можемо реалізувати подібну функціональність за допомогою словника Python.

У наступному розділі ми побачимо реалізацію кожного з прикладу.

Приклад №1

Використання драбинки if-else-if - Альтернатива для переключення оператора case. У цьому прикладі ми використали твердження 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

Реалізація оператора переключення за допомогою словника рядків. Мова Python не має жодних операторів перемикання. Однак ми можемо ефективно реалізувати функцію оператора перемикання в Python, використовуючи словник, як показано нижче.

Пояснення: Словник у Python - це не упорядкована колекція пар ключів і значень. У наведеному нижче фрагменті коду перемикач - це змінна словник, яка тримає клавішу: пари значень, подібні до випадків, подібних до комутаторів.

Використовуючи метод get (), ми можемо отримати доступ до елемента словника, передаючи аргументи як ключ і необов'язкове значення за замовчуванням. Значення за замовчуванням допомагає реалізувати "випадок за замовчуванням" оператора перемикання.

Код:

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

Реалізація оператора перемикання з використанням словникового відображення функцій. У наведеному вище прикладі значення словника мають строковий тип даних, тобто постійний. Але цікаво знати, що значення словника Python можуть бути будь-яких типів даних.

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

Код:

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))

вихід:

Висновок

Як ми бачили вище, той самий випадок використання може бути реалізований як оператором case switch, так і твердженням if-else-if. Але заява Switch забезпечує більш керований і читабельний код, ніж оператор сходинки if-else-if. Ми також бачили, що мова Python не має жодних операторів комутації, але ми можемо реалізувати те ж саме більш ефективно, використовуючи Python Dictionary.

Рекомендовані статті

Це посібник із заяви про перемикач Python. Тут ми обговорюємо синтаксис, блок-схему та роботу оператора python switch разом із прикладами та реалізацією. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Спадщина в Python
  2. Перевантаження Python
  3. Словник в Python
  4. Словник в Python