Увод у Питхон Свитцх изјаву

Изјава о пребацивању је веома корисна и моћна програмска функција. То је алтернатива изводу лествице ако-елсе-иф и пружа боље перформансе и управљивији код од изјаве мердевина ако-елсе-иф. Већина програмских језика (као што су Јава, Ц итд.) Нуде изјаве о пребацивању, али Питхон језик нема ниједан исказ преклопника. Међутим, ако желите пребацивати изјаве о великим случајевима, у Питхон-у постоји врло ефикасан начин имплементације функције изјаве о случају прекидача. Овај ће вам водич помоћи да га имплементирате.

Дијаграм тока

Изјава о пребацивању у сваком програмском језику има исту функционалност, али нешто другачију синтаксу. Питхон језик не пружа ниједну уграђену изјаву о пребацивању. Ову функцију можемо имплементирати са истим током и функционалношћу, али са различитом синтаксом и имплементацијом користећи Питхон Дицтионари.

Синтакса изјаве преклопника

Само погледа испод две различите синтаксе изјаве о пребацивању. Прва изјава показује стандардну синтаксу изјава о пребацивању на другим програмским језицима као што су Ц, Јава, итд. Друга изјава је имплементација Питхон-ове изјаве Свитцх. Јасно можете повезати колико су обе сличне у функцији, али различите у примени.

1. Пребаците се на друге језике (ц, Јава, ..)

Синтакса:

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. Пребаците имплементацију у Питхон

Синтакса:

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

Рад са изјавом о прекидачу

  • Рад стандардне изјаве преклопника на било којем програмском језику је сличан. Састоји се од више случајева од којих сваки има блок кода и изјаву о прекиду.
  • Аргумент уноса упоређује се са више случајева један за другим. Ако се аргумент подудара с било којим случајем, тада се извршава одговарајућа изјава блока и контрола излази из изјаве прекидача у изјави бреак.
  • Ако се ниједан случај не подудара са улазним аргументом, тада се извршава задана изјава блока.
  • У Питхон имплементацији свитцх изјава, Питхон рјечник сматрамо прекидачем и кључеве речника као случајеве. Овде зовемо функцију гет () речника са потребним аргументима, тј. Улазним кључем и подразумеваном вредношћу.
  • Ако се тастер за унос подудара са било којим од тастера речника, враћа се одговарајућа вредност. Међутим, ако се тастер за унос не подудара ни са једним кључем из речника, тада ће се вратити задана вредност.

Имплементација Свитцх изјаве у Питхон-у

Као што знамо, изјава случаја прекидача и изјава-ако-друг-ако су мердевине изменичне једна на другу. Обе се могу користити за постизање исте сврхе, али изјава случаја прекидача пружа боље перформансе и управљивији код од наредбе љествице ако-елсе-иф. Питхон језик нема ниједну изјаву о пребацивању, али сличну функционалност можемо имплементирати користећи Питхон Дицтионари.

У следећем одељку ћемо видети имплементацију сваког са примером.

Пример # 1

Употреба мердевина иф-елсе-иф - Алтернатива за промену изјаве случаја. У овом примјеру користили смо иф-елсе-иф љествицу да бисмо добили дан у седмици. За исти случај употребе видећемо и имплементацију стања пребацивања у Питхон-у.

Шифра:

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

Имплементација прекидачке изјаве помоћу Рјечника струна. Питхон језик нема изјаве о пребацивању. Међутим, на Питхон-у можемо ефикасно имплементирати функцију пребацивања изјаву користећи Рјечник доље.

Објашњење: Речник у Питхон-у је неуређена колекција парова кључева и вредности. У доњем исјечку кода, комутатор је варијабла рјечника која држи типку: парови вриједности слични случајевима сличним прекидачима.

Помоћу методе гет () можемо приступити ставки речника тако што ћемо проследити аргументе као кључ и опционалну задану вредност. Задана вредност помаже у имплементацији 'заданог случаја' изјаве преклопника.

Шифра:

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

Имплементација прекидачке изјаве помоћу речника мапирања функција. У горњем примјеру, вриједности рјечника су врсте података типа, тј. Константне. Али занимљиво је знати да вредности Питхон речника могу бити било које врсте података.

Вриједности Питхон рјечника могу бити константе (цијели бројеви, жице) као и функције. У овом примјеру имплементират ћемо изјаву склопке која ће такођер подржавати позив функције за сваки случај прекидача користећи рјечник функција како је доље наведено.

Шифра:

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

излаз:

Закључак

Као што смо видјели горе, исти случај употребе може се имплементирати и изјавом о случају прекидача и наредбом љествице иф-елсе-иф. Али Свитцх-ова изјава пружа једноставнији и читљивији код од изјаве мердевина иф-елсе-иф. Такође смо видели да Питхон језик нема ниједну изјаву о пребацивању, али то можемо имплементирати на ефикаснији начин користећи Питхон Дицтионари.

Препоручени чланци

Ово је водич за Питхон Свитцх изјаву. Овде смо расправљали о синтакси, дијаграму тока и раду исказа питхон свитцх, заједно са примерима и имплементацијом. Такође можете погледати следеће чланке да бисте сазнали више -

  1. Наслеђивање у Питхону
  2. Питхон Оверлоадинг
  3. Речник у Питхон-у
  4. Речник у Питхон-у

Категорија: