Python’da Karar Yapıları veya Koşullu İfadeler (Decision Structures or Conditional Statements)

Bu makalemizde python’da bir uygulama geliştirirken hangi durumlarda nasıl karar vereceğimizi öğreneceğimiz Python’da karar yapıları veya koşullu ifadelerden(decision structures and conditional statements) bahsedeceğiz Karar yapıları veya koşullu ifadeler, bir programın işleyişini kontrol etmek, bazı durumları değerlendirmek ve belirli koşullara göre farklı işlemler gerçekleştirmek, programlama dünyasında sıkça kullanılan bir yaklaşımdır. Python, bu tür karar yapılarını oluşturmanızı sağlayan güçlü bir programlama dilidir. Bu makalemizde, Python’da kullanabileceğiniz karar yapılarını ve bu yapıları nasıl kullanabileceğinizi örnekleriyle birlikte keşfedeceğiz. 1.  İf-Else Yapısı: En temel karar yapısı olan “if-else” ifadesi, belirli bir koşulun doğru veya yanlış olmasına bağlı olarak farklı kod bloklarını çalıştırmanızı sağlar. İf-else yapısının genel sözdizimi aşağıdaki gibidir: if koşul: # Koşul doğruysa yapılacaklar else: # Koşul yanlışsa yapılacaklar   Örnek bir kullanım gösterirsek: sayi=10 if sayi>0: print("sayi pozitiftir") else: print("sayı negatif veya sıfırdır")   Burada belirtilen sayi değişkenindeki  degerin pozitif durumunu sağlıyorsa pozitif olması durumda ekranda sayı pozitiftir  yazısı gözükürken, pozitif olmaması durumunda […]

Python’da Karar Yapıları veya Koşullu İfadeler (Decision Structures or Conditional Statements)

Bu makalemizde python’da bir uygulama geliştirirken hangi durumlarda nasıl karar vereceğimizi öğreneceğimiz Python’da karar yapıları veya koşullu ifadelerden(decision structures and conditional statements) bahsedeceğiz
Karar yapıları veya koşullu ifadeler, bir programın işleyişini kontrol etmek, bazı durumları değerlendirmek ve belirli koşullara göre farklı işlemler gerçekleştirmek, programlama dünyasında sıkça kullanılan bir yaklaşımdır. Python, bu tür karar yapılarını oluşturmanızı sağlayan güçlü bir programlama dilidir. Bu makalemizde, Python’da kullanabileceğiniz karar yapılarını ve bu yapıları nasıl kullanabileceğinizi örnekleriyle birlikte keşfedeceğiz.

1.  İf-Else Yapısı:

En temel karar yapısı olan “if-else” ifadesi, belirli bir koşulun doğru veya yanlış olmasına bağlı olarak farklı kod bloklarını çalıştırmanızı sağlar. İf-else yapısının genel sözdizimi aşağıdaki gibidir:

if koşul:
    # Koşul doğruysa yapılacaklar
else:
    # Koşul yanlışsa yapılacaklar

 

Örnek bir kullanım gösterirsek:

sayi=10

if sayi>0:
    print("sayi pozitiftir")
else:
    print("sayı negatif veya sıfırdır")

 

Burada belirtilen sayi değişkenindeki  degerin pozitif durumunu sağlıyorsa pozitif olması durumda ekranda sayı pozitiftir  yazısı gözükürken, pozitif olmaması durumunda da sayı negatif veya sıfırdır ibaresini göstermesini sağladık.

Kodumuzun ekran çıktısı aşağıdaki gibidir:

2. İç İçe İf-Else Yapısı:

Daha karmaşık durumları ele almak için, “if-else” ifadelerini iç içe kullanabilirsiniz. Bu, bir koşulun doğru veya yanlış olmasına bağlı olarak birden çok farklı kod bloğunun çalıştırılmasını sağlar. Şimdi bir örnek yaparak bunu açıklayalım:

sayi=10

if sayi>0:
    print("sayı pozitiftir")
    if sayi%2==0:
        print("sayi bir çift sayıdır")
    else:
        print("sayı negatif bir sayıdır")
else:
    print("sayi negatif veya sıfırdır")

Bu örnekte, “sayi” değeri pozitif olduğunda, program önce ” sayi pozitiftir.” çıktısını verir. Ardından, ” sayi ”  çift bir sayıysa  “sayi bir çift sayıdır.” çıktısını verir; aksi halde ” sayi bir tek sayıdır.” çıktısını verir. Eğer ” sayi ” negatif veya sıfırsa, ” sayi negatif veya sıfır bir sayıdır.” çıktısını verir.

kodumuzun ekran çıktısı aşağıdaki gibidir:

3. Elif Yapısı:

Bazı durumlarda, birden çok koşulu değerlendirmeniz gerekebilir. Bu durumda, “elif” ifadesini kullanarak birden çok alternatif koşul oluşturabilirsiniz.

sayi = 10

if sayi > 0:
    print("sayi pozitif bir sayıdır.")
elif sayi < 0:
    print("sayi negatif bir sayıdır.")
else:
    print("sayi sıfırdır.")

 

Bu örnekte, “sayi” değeri pozitifse, program ” sayi pozitif bir sayıdır.” çıktısını verir. Eğer ” sayi ” negatifse, ” sayi negatif bir sayıdır.” çıktısını verir. Eğer ” sayi ” ne pozitif ne de negatifse, yani sıfırsa, ” sayi sıfırdır.” çıktısını verir.

Kodumuzun ekran çıktısı aşağıdaki gibidir:

4. Switch-Case Yapısı:

Bazı programlama dillerinde bulunan “switch-case” yapısı, belirli bir değişkenin farklı değerlerine bağlı olarak farklı kod bloklarını çalıştırmanızı sağlar. Ancak, Python’da doğrudan bir “switch-case” ifadesi bulunmamaktaydı ve bunun yerine, genellikle “if-elif-else” yapısıyla benzer bir yapı kullanılıyordu yada switch case yapısına benzer dictionary yapısı kullanılarak yapılıyordu ama artık 3.10 python sürümüyle swtich case yapısı match-case yapısı ile kullanılmaya başlanıldı.

Şimdi biz match- case yapısı olmadan if-elif-else ile yapalım:

def haftanin_gunu(numara):
    gun = ""
    if numara == 1:
        gun = "Pazartesi"
    elif numara == 2:
        gun = "Salı"
    elif numara == 3:
        gun = "Çarşamba"
    elif numara == 4:
        gun = "Perşembe"
    elif numara == 5:
        gun = "Cuma"
    elif numara == 6:
        gun = "Cumartesi"
    elif numara == 7:
        gun = "Pazar"
    else:
        gun = "Geçersiz gün numarası"
    return gun

print(haftanin_gunu(3))
print(haftanin_gunu(8))

 

Bu örnekte, “haftanin_gunu” adında bir fonksiyon tanımladık ve parametre olarak bir gün numarası aldık. Fonksiyon içinde, numaraya göre ilgili gün adını döndürdük. Eğer geçersiz bir numara girilirse, “Geçersiz gün numarası” çıktısını verdik.

Kodumuzun ekran çıktısı aşağıdaki gibidir.

 

 

 

Switch case yapısını Dictionary yapısı ile yapalım:

import time

print("""
    1:"Bakiye Sorgulama",
    2:"Para Yatırma",
    3:"Para Çekme",
    4:"Hesap Transferi",
    5:"Kart İade"
    6:"çıkış

""")

def switch(secim):
    case={}  
    while True:
        try:
            case={
                1:"Bakiye Sorgulama",
                2:"Para Yatırma",
                3:"Para Çekme",
                4:"Hesap Transferi",
                5:"Kart İade",
                6:"çıkış yapılıyor",
                "default":"yanlış bir değer girdniz"
            }
            print(case[secim])
            break
        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

while True:
      try:
         secim = int(input("ATM uygulaması için bir tam sayı girin ... : "))
         switch(secim) #switch fonksiyonumuzu çağırıyoruz .
         if secim==6:
            time.sleep(2)
            exit()
      except ValueError:
         print("Girdiğiniz değer bir tam sayı değil")
         continue

 

Bu kodumuzda gerçek bir atm uygulamasının bir parçasını görüyorsunuz python 10.3 versiyonunda önce switch-case yapısının olmadığını söylemiştik ama ona rağmen ihtiyacımız olduğunda kendi switch fonksiyonumuzu yazıp kullanıcıdan aldığımız değerleri kontrol yapısına sokarak işlemlerimizi yapmış olduk.

Kodumuzun ekran çıktısı aşağıdaki gibidir:

5. Match –Case yapısı:

Python 10.3 sürümünden önce olmayan switch-case özelliği,  match-case özelliği ile  python’a kazandırılmış olundu Burada structural pattern matching feature, yani Yapısal kalıp eşleştirme özelliği ile anahtar deyimleri ile işlem yaparız. Temel kullanımı :

match term:
    case pattern-1:
         action-1
    case pattern-2:
         action-2
    case pattern-3:
         action-3
    case _:
        action-default

burada dikkat edilmesi  gereken  nokta   _(alt çizgi) ile belirtilen durumun default durumuna karşılık geldiğidir.
Şimdi bir örnek yapalım:

def meyveRengi(meyve):
    match meyve:
        case "muz":
            return "sarı"
        case "portakal":
            return "turuncu"
        case "çilek":
            return "kırmızı"
        case _:
            return "Bilinmeyen meyve"

print(meyveRengi("muz"))
print(meyveRengi("çilek"))
print(meyveRengi("Avokado"))

Bu örnekte, match-case yapısını kullanarak “meyve” değişkeninin değerine göre ilgili renkleri döndüren bir fonksiyon tanımladık. Her bir durum için case ifadesi kullanarak meyve adını kontrol ettik ve ilgili renkleri döndürdük. Bilinmeyen bir meyve girildiğinde ise _ alt çizgi ile belirtilen durumda “Bilinmeyen meyve” mesajını döndürdük. Burada dikkat edilmesi  gereken nokta kodumuzu çalıştırdığımız python sürümünün10.3 altında olmaması gerek yoksa match-case yapısını tanıyamaz.

Bu örnekte match-case yapısını kullanarak, birden çok durumu kontrol etmek ve karşılıklı ilişkili sonuçlar döndürmek oldukça kolaydır. Bu yapı, özellikle veri işleme, durum yönetimi veya işlem seçimi gibi durumlarda kullanışlıdır.

Kodumuzun ekran çıktısı aşağıdaki gibidir:

 

Sonuç olarak,  Python’da match-case deyimi ile yapısal örüntü eşleştirmeyi tanıttık. Gereken kod miktarı ve okunabilirlik açısından bir if-elif-else ifadesine göre nasıl avantaj sağlayabileceğini gösterdik. Bu yeni özelliğin burada değinmediğimiz daha birçok özelliği var – girdi olarak bir nesne sağlayabilir (kullandığımız dizeler yerine) ve nesnenin öznitelikleri üzerinde desen eşleştirme yapabilirsiniz.

 

Benzer Yazılar

Gui Dersleri #8 | LabelFrame kullanımı ve TopLevel kullanımı

Python 1 yıl önce

Arkadaşlar merhaba bu makalemizde sizlere python’da LabelFrame kullanımı ve TopLevel kullanımının nasıl yappacağımızı anlatacağım.  Ayrıca size bu konu hakkında çektiğim video’yu bırakıyorum isteyen video izler isteyen aşağıdaki makaleyi okur. Şimdiden iyi seyirler ve iyi okumalar dilerim. ☺ LabelFrame kullanımı : LabelFrame widget’ı, bir çerçeve içindeki bir etiketle birlikte bir grup widget’ı oluşturmanıza olanak tanır. LabelFrame widget’ı, bir Frame widget’ının özelliklerine sahiptir ve ayrıca bir başlık etiketi içerir. Bu widget’lar, diğer widget’ları gruplandırmak için kullanılabilir. from tkinter import* pencere=Tk() pencere.title("label Frame örneği") pencere.geometry("400×300+200+200") kisi_bilgileri=LabelFrame(pencere,text="nüfus örneği", width=300,height=200) kisi_bilgileri.pack(pady=30) kisi_ad=Label(kisi_bilgileri,text="ad soyad") kisi_ad.place(x=20,y=20) kisi_ad_giris=Entry(kisi_bilgileri) kisi_ad_giris.place(x=120,y=20) pencere.mainloop()   yukarıdaki kodumuzda görüleceği üzere formlarda widgetların daha düzenli görünmesini sağlayan labelFrame’mizi  kisi_bilgileri=LabelFrame(pencere,text=”nüfus örneği”, width=300,height=200) şeklinde yükseklik ve genişlik değerleri vererek tanımladık. Bundan sonra ise ekleyeceğimiz widgetları pencere üzerinde tanımlamak yerine kisi_ad=Label(kisi_bilgileri,text=”ad soyad”) buradaki gibi kisi_bilgileri adında tanımladığım LabelFrame değişkeni üzerine eklediğimizi belirtiyoruz. kisi_ad_giris.place(x=120,y=20) burada da Entry nesnesini place özelliği ile x ve y değerlerini vererek konumlandırıyoruz. kodumuzun ekran […]

Python Dersleri | Bayrama özel uygulama yapımı

Python 1 yıl önce

Arkadaşlar Merhabalar bugunkü makalemizde bayramda aklıma gelen bir uygulama senaryosunu gerçekleştirmesini size anlatıyor olacağım. Bayramda vakit ayırıp bunu yeni gerçekleştirdim umarım beğenirsiniz. Bayramınızı kutluyorum şimdiden iyi seyirler ve iyi okumalar dilerim. def __init__(self): Burada yapıcı(constructor ) fonksiyonumuzu tanımladık self belirteci  ile burada attribute’lar ve fonksiyonlara ulaşıyor oalcağız. self.pencere = tk.Tk() self.pencere.title("Bayram Uygulaması") self.pencere.geometry("500×400+500+300") burada pencere ayarlamasınız yaptık. self.soru1=tk.Label(self.pencere,text="1. Mezarlık ziyareti yapıldı mı?") self.soru1.grid(row=0,column=0) self.evet1=tk.Button(self.pencere,text="Evet",command=self.mezarlikEvet) self.evet1.grid(row=0,column=1) burada soru etkietimizi ve yanlarından evet ve hayır butonlarını ekledik burada grid(row,column) yapısına değinecek olursak elemanlarımı grid şeklinde bize yerleştirmemizi sağlayacaktır. def mezarlikEvet(self): self.skor+=20 self.evet1.config(state="disabled") self.hayir1.config(state="disabled") self.guncelle() def mezarlikHayir(self): self.evet1.config(state="disabled") self.hayir1.config(state="disabled") self.guncelle() burada ise buttonlarımızın command parametresine karşılık gelen fonksiyonlarımızı doldurduk. if(self.skor>=80): sonuc = "Neredeyse tüm görevleri yapmışssın helal sana be!🎊🎇 " elif(self.skor>=60 and self.skor<80): sonuc = "Kurban bayramının gerekliliklerini orta düzeyde karşılıyorsun. 😊" elif(self.skor>50 and self.skor<60): sonuc = "kurban bayramının olması gerektiği gibi değil maelesef 😔" else: sonuc = "olmaz öyle kardeşim böyle bayramda […]

Gui Dersleri #7 | Canvas kullanımı, Scale kullanımı ve Scrollbar kullanımı ile ilgili işlemler

Python 1 yıl önce

Arkadaşlar merhaba bu makalemizde sizlere Canvas(Tuval) kullanımı, Scale(ölçek) kullanımı ve Scrollbar(Kaydırma çubuğu) kullanımının nasıl oluşturacağını anlatıyor olacağım ve bunlarla ilgili örnek uygulama yapacağım. Ayrıca size bununla ilgili yukarıda bir örnek video bırakıyorum isteyen video izler isteyen aşağıdaki makaleyi okur. Şimdiden iyi seyirler ve iyi okumalar dilerim. ☺ Canvas(Tuval) kullanımı: Canvas widgeti, Tkinter’da kullanılan bir çizim alanıdır. Bu widgeti kullanarak grafikler, şekiller, metinler ve diğer çizim öğelerini ekrana çizebilirsiniz. Canvas, çeşitli interaktif grafik uygulamaları ve veri görselleştirme için kullanışlıdır. from tkinter import* pencere=Tk() pencere.geometry("300×300+200+200") pencere.title("Canvas örneği") canvas1=Canvas(width=300,height=300,background="gray",highlightthickness=2) canvas1.pack() canvas1.create_rectangle(50,50,100,100,fill="blue") canvas1.create_oval(60,60,150,150,fill="red") canvas1.create_text(50,30,text="merhaba",font="courier 15",fill="yellow") pencere.mainloop()   Bu örnekte, Canvas sınıfını kullanarak bir tuval oluşturuyoruz. width ve height parametreleri tuvalin boyutlarını belirtir. create_rectangle() ve create_oval() metotlarıyla dikdörtgen ve elips gibi çizimler yapabiliriz. Ayrıca create_text() metoduyla da belirtilen özellikte bir text yazısı yazar. Kodlarımızın ekran çıktısı aşağıdaki gibidir:   Scale(Ölçek) kullanımı Scale widgeti, Tkinter’da kullanılan bir kaydırma çubuğu bileşenidir. Kullanıcının bir aralıktaki bir değeri seçmesini […]

0 Yorum

Yorum Yaz

Rastgele