Dictionary ile Switch benzeri bir yapı kurmak oldukça kolaydır:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
switcher = { | |
'bir': 1, | |
'iki': 2, | |
'uc': 3, | |
'dort':4, | |
} | |
switch_result=switcher.get("iki") | |
# Tam Tersini yapacak olursak | |
switcher_rev = { | |
1:"bir", | |
2: "iki", | |
3: "üç", | |
4:"dört", | |
} | |
switch_rev_result=switcher_rev.get(3) #yine çalışmakta. | |
#Birden çok veri yapısı ile kullanırsak | |
switcher_2 = { | |
1:"bir", | |
2: "iki", | |
3: "üç", | |
4:"dört", | |
'5':"beş", | |
'6':"alti", | |
'7':"yedi" | |
} | |
switch_result=switcher_2.get('5') | |
print(switch_result) | |
#fonksiyon da çağırabiliriz. | |
def some_calculation1(number): | |
return number*number+2 | |
def some_calculation2(number): | |
return number*number+3 | |
switcher_fonk = { | |
1:some_calculation1(1), | |
2:some_calculation2(2) | |
} | |
print(switcher_fonk.get(2)) | |
#Biraz daha özelleştirilmiş bir şeyler yapacak olursak | |
switch_lambdali = {'bir': lambda x: x*120, | |
'iki': lambda x:some_calculation1(x), | |
'uc': 3, | |
} | |
print(switch_lambdali.get(5)) #600 | |
print(switch_lambdali.get("iki")(7)) #52 | |
#Görüldüğü şekilde istenen değere istenen işlem yaptırılabiliyor. | |
#Son olarak defaultu get içinde tanımlamamız gerekmektedir. | |
default=-999 | |
print(switcher.get("dokuz",default)) | |
#Dictionary"de tanımlanmayan her eleman -999 döndürecektir. | |