Python switch-case kullanımı

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 .

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 :

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)

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 :

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

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ı : 

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 .

 

 

 

 

 

 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir