Python programlama dilinde ne yazık ki diğer dillerde olduğu gibi bir switch-case yapısı yoktur . Dictionary yapısını kullanarak python için kendi switch-case yapımızı oluşturabiliriz .
Eğer dictionary veri yapısı hakkında bir bilginiz yoksa bu bağlantıda bulunan içeriğe göz atabilirsiniz
Öncelikle switch adında bir fonksiyon tanımlıyoruz .
1 | def switch(deger): |
Şimdi oluşturduğumuz bu switch fonksiyonun içini doldurmaya geçelim .Bu fonksiyon için karşımıza çıkan hataları bir try-catch ile kontrol altına almalıyız . Çünkü fonksiyon parametresinden gelen değer oluşturduğumuz dictionary yapısında bulunmayabilir . Bu durumda KeyError hatası ile karşılaşırız . KeyError durumunda diğer programlama dillerindeki switch-case yapısında bulunan default anahtarını ekrana basıyoruz .
switch fonksiyonu şu şekilde olmalıdır :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | def switch(deger): case={} while True: try: case = { 0:'Case 0\'ın değeri', #Birinci seçenek 1:'Case 1\'ın değeri', #İkinci seçenek 2: 'Case 2\'ın değeri',#Üçüncü seçenek 3: 'Case 3\'ın değeri',#Dördüncü seçenek 4: 'Case 4\'ın değeri', #Beşinci seçenek 'default':'yanlış bir değer girdiniz' # diğer dillerde olduğu gibi default case değerini oluşturma } print(case[deger]) # parametreden gelen değeri basıyoruz break #programın döngüden çıkmasını sağlıyoruz except KeyError: print(case['default']) #hatalı giriş olduğu anda default değeri basıyoruz . break #programın döngüden çıkmasını sağlıyoruz |
Bu fonksiyonu dilediğiniz gibi kendinize uyarlayabilirsiniz .
Daha sonra programımız çalıştırmak için bir main fonksiyonu tanımlıyoruz (Opsiyonel)
1 | def main(): |
Bu uygulama için klavyeden ne girilirse girilsin sadece tam sayıya girilmesine izin veren bir yapı oluşturalım .Bunun için yine bir try-catch yapısı kullanmalıyız . input üzerinden alınan değerin int olması durumunda koşul başarı ile çalışacak ve diğer int olmama durumunda nihai hata olan ValueError karşımıza gelecektir .
main fonksiyonu şu şekilde olmalıdır :
1 2 3 4 5 6 7 8 9 10 | def main(): while True: try: deger = int(input("Lütfen bir tam sayı girin ... : ")) switch(deger) #switch fonksiyonumuzu çağırıyoruz . except ValueError: print("Girdiğiniz değer bir tam sayı değil") continue main() #main fonksiyonumuzu çağırıyoruz |
İlgili fonksiyonlar oluşturulduktan sonra kodumuz şu şekilde olacaktır
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | def switch(deger): case={} while True: try: case = { 0:'Case 0\'ın değeri', #Birinci seçenek 1:'Case 1\'ın değeri', #İkinci seçenek 2: 'Case 2\'ın değeri',#Üçüncü seçenek 3: 'Case 3\'ın değeri',#Dördüncü seçenek 4: 'Case 4\'ın değeri', #Beşinci seçenek 'default':'yanlış bir değer girdiniz' # diğer dillerde olduğu gibi default case değerini oluşturma } print(case[deger]) # parametreden gelen değeri basıyoruz break #programın döngüden çıkmasını sağlıyoruz except KeyError: print(case['default']) #hatalı giriş olduğu anda default değeri basıyoruz . break #programın döngüden çıkmasını sağlıyoruz except ValueError: print("Girdiğiniz değer bir tam sayı değil") break def main(): while True: try: deger = int(input("Lütfen bir tam sayı girin ... : ")) switch(deger) except ValueError: print("Girdiğiniz değer bir tam sayı değil") continue main() |
Ekran Çıktısı :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Lütfen bir tam sayı girin ... : 0 Case 0'ın değeri Lütfen bir tam sayı girin ... : 1 Case 1'ın değeri Lütfen bir tam sayı girin ... : 2 Case 2'ın değeri Lütfen bir tam sayı girin ... : 3 Case 3'ın değeri Lütfen bir tam sayı girin ... : 4 Case 4'ın değeri Lütfen bir tam sayı girin ... : 5 yanlış bir değer girdiniz Lütfen bir tam sayı girin ... : abc Girdiğiniz değer bir tam sayı değil Lütfen bir tam sayı girin ... : |
Farklı veriler girerek adım adım denenmiştir .