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

Изявление за превключване е много полезна и мощна функция за програмиране. Той е алтернативен на if-else-if оператор на стълбата и осигурява по-добра производителност и по-управляем код от оператора if-else-if ladder. Повечето от езиците за програмиране (като Java, C и др.) Предлагат оператори за превключване, но езикът на Python няма изявления за превключване. Ако обаче искате да превключвате извлечения от регистъра, има много ефективен начин да внедрите функцията за оператор на превключване на случая в Python. Този урок ще ви помогне да го приложите.

Блок-схема

Изявлението за превключване във всеки език за програмиране има същата функционалност, но малко по-различен синтаксис. Езикът на Python не предоставя никакви вградени оператори за превключване. Ние можем да реализираме тази функция със същия поток и функционалност, но с различен синтаксис и изпълнение с помощта на Python Dictionary.

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

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

1. Превключване на други езици (в, 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

Както знаем, операторът на случая на превключвателя и ако-друго-ако оператор на стълбата се редуват един друг. И двете могат да бъдат използвани за постигане на една и съща цел, но оператор на случай на превключвател осигурява по-добра производителност и по-управляем код от оператора на стълбата if-else-if. Езикът на Python няма изявления за превключване, но можем да реализираме подобна функционалност, използвайки Python Dictionary.

В следващия раздел ще видим изпълнението на всеки с пример.

Пример №1

Използване на стълба if-else-if - Алтернатива за превключване на декларация за случай. В този пример сме използвали изявлението на стълбата 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 case, така и от оператора на стълбата if-else-if. Но изказването на Switch предоставя по-управляем и четим код от оператора if-else-if ladder. Също така видяхме, че езикът на Python няма изявления за превключване, но можем да реализираме същото по по-ефективен начин, използвайки Python Dictionary.

Препоръчителни статии

Това е ръководство за изявление за превключване на Python. Тук обсъждаме синтаксиса, блок-схемата и работата на оператора python switch, заедно с примери и изпълнение. Можете също да разгледате следните статии, за да научите повече-

  1. Наследяване в Python
  2. Python Overloading
  3. Речник на Python
  4. Речник на Python