2 moduri Simple de a pune în aplicare Python comutator caz declarație
curs Python gratuit cu 25 de proiecte în timp real începe acum!!
în ultimul nostru Tutorial Python, am studiat procesarea XML în Python 3. Astăzi, vom studia modul de implementare a Declarației de caz Python Switch. spre deosebire de alte limbaje, cum ar fi limbajul de programare Java și C++, Python nu are o construcție de tip switch-case. Odata cu aceasta, vom vedea cum să lucreze o portiță pentru Python comutator caz declarație.
deci, să discutăm diferite moduri de implementare pentru Python comutator caz declarație.
2 moduri Simple de a pune în aplicare Python comutator caz declarație
ce este Python comutator caz declarație?
Python nu are un simplu construct comutator-caz. Venind dintr-un fundal Java sau C++, este posibil să vi se pară puțin ciudat.
în C++ sau Java, avem ceva de genul acesta:
string week(int i){ switch(i){ case 0: return "Sunday” break; case 1: return "Monday” break; case 2: return "Tuesday” break; case 3: return "Wednesday” break; case 4: return "Thursday” break; case 5: return "Friday” break; case 6: return "Saturday” break; default: return "Invalid day of week” } }
dar Python nu are acest lucru.
deci, pentru a obține în jurul valorii de acest lucru, vom folosi Python built-in dicționar construi să pună în aplicare cazuri și a decis ce să facă atunci când un caz este îndeplinită.
putem specifica, de asemenea, ce să facem atunci când nu este îndeplinită niciuna.
soluții pentru Python comutator caz declarație
o cale de ieșire ar fi să pună în aplicare o scară if-elif-else. Mai degrabă, putem folosi un dicționar pentru a mapa cazurile la funcționalitatea lor.
aici, definim o săptămână de funcții() pentru a ne spune ce zi este o anumită zi a săptămânii. Un switcher este un dicționar care efectuează această mapare.
>>> def week(i): switcher={ 0:'Sunday', 1:'Monday', 2:'Tuesday', 3:'Wednesday', 4:'Thursday', 5:'Friday', 6:'Saturday' } return switcher.get(i,"Invalid day of week")
acum, facem apeluri către săptămâna() cu valori diferite.
>>> week(2)
ieșire
>>> week(0)
ieșire
>>> week(7)
ieșire
>>> week(4.5)
ieșire
după cum puteți vedea, pentru alte valori decât cele pe care le menționăm în comutator, se imprimă „zi nevalidă a săptămânii”. Acest lucru se datorează faptului că îi spunem să facă acest lucru folosind metoda get() a unui dicționar.
a. Folosind funcțiile Python & Lambdas
putem folosi și funcții și lambdas în dicționar.
>>> def zero(): return 'zero'>>> def one(): return 'one'>>> def indirect(i): switcher={ 0:zero, 1:one, 2:lambda:'two' } func=switcher.get(i,lambda :'Invalid') return func()>>> indirect(4)
ieșire
>>> indirect(2)
ieșire
>>> indirect(1)
ieșire
>>> indirect(0.5)
ieșire
B. cu clase Python
folosind acest concept cu clase ne permite să alegem o metodă în timpul rulării.
>>> class Switcher(object): def indirect(self,i): method_name='number_'+str(i) method=getattr(self,method_name,lambda :'Invalid') return method() def number_0(self): return 'zero' def number_1(self): return 'one' def number_2(self): return 'two'>>> s=Switcher()>>> s.indirect(2)
ieșire
>>> s.indirect(4)
ieșire
>>> s.number_1()
ieșire
deci, acest lucru a fost totul despre Python comutator caz declarație. Sper că vă place tutorialul nostru.
întrebări de interviu Python privind Declarația de caz comutator
- are Python o declarație de caz comutator?
- cum implementați un caz de comutare în Python?
- ce este un caz în declarația switch în Python?
- explicați Python comutator caz declarație cu exemplu.
- câte cazuri puteți avea în declarația switch în Python?
concluzie
prin urmare, concluzionăm că Python nu are un construct încorporat în cazul comutatorului, putem folosi un dicționar în schimb.