Pyhton ile IF condition yani "eğer" durumları birkaç şekilde ele alınabiliyor:
1.si eğer şöyleyse bunu yap demek ki bu en kolayı:
if condition :
print("oldubuiş")
2.si eğer bir koşula daha bağlı kalmamız gerekiyorsa.
Mesela araba kullanabilmek için hem 18 yaşından büyük olmamız hem de renk körü olmamamız lazım.
Bu durumda "Ehliyet alabiliyor muyum?" diye kontrol edebileceğim bir program yazmak istersem ilk soru şu soracak "18 yaşından büyük müsün?", eğer bu koşulu evet şeklinde gerçekleştirebiliyorsam ozaman ikinci soru gelecek: "Renk körü müsün?", buna da "Hayır" cevabı alırsa bana "Ehliyet senindir!" diyecek.
Peki bunu python'a nasıl dökeceğiz? "Nested if" ile.
Hemen göstereyim
1. yapmamız gereken yaş değişkenini belirlemek:
yas = int(input("Kac yasindasin? "))
input ile bir veri girileceğini, int ile de bir tam sayı beklediğimizi belirttik.
Şimdi tam 18 yaşında, 18 yaşından küçük ve/veya büyük için bir koşul belirlememiz gerekiyor:
yas = int(input("Kac yasindasin? "))
if yas >= 18:
print ("Ehliyet senindir")
else:
print("Seneye tekrar dene")
Buraya kadar iki önemli nokta var:
1. tam 18 yaşında olduğu durumu atlamamak için >= (yani büyüktür ve eşittir) kullanmak,
2. if condition sonundaki : unutmamak.
Şimdi diğer koşulu da gerçekleştirip gerçekleştirmediğini öğrenmemiz gerekiyor, bunun için ikinci değişkeni de belirlememiz gerekiyor:
körlük = str(input("Kör müsün? "))
Şimdi de bu 2 durumu birleştirmek gerekiyor.
Ön koşul yaş olduğundan önce onu yazıyorum ardından bir tab tuşu marifetiyle ikinci if'imi yazıyorum:
körlük = str(input("Kör müsün? "))
Böylece ilk koşulu sağladıysa (>=18) emeklilikte yaşa takılanlar gibi bu defa göz muayenesine takılıyor. Ona da "Hayır" cevabı verdiyse, aldı ehliyeti.
Çıktısını da şöyle bırakayım:

*** Hatırlanması gereken şu: condition kontrolü yaparken her zaman "büyük resme" bakıyor, en dıştan en içe doğru doğrulama yaparak devam ediyor.
Gelelim "Obez misin?" bölümümüze.
Daha önce BMI (Vücut kitle indeksi) hesaplayan bir makina yapmıştık. Bu sefer işleri iletletiyor ve BMI'da çıkan rakama göre obezite çarkındaki yerini söylüyoruz.
boy = float(input("Boyunuzu metre cinsinden girin: "))
kilo = float(input("Kilonuzu girin: "))
Değişkenlerimizi belirledik.
BMI hesabı şöyleydi:
bmi = round(ağırlık / (uzunluk * uzunluk))
if bmi <= 18.5:
print(f"BMI {bmi} çıktı, zayıfsın")
elif bmi <= 25:
print(f"BMI {bmi} çıktı, normalsin")
elif bmi <= 30:
print(f"BMI {bmi} çıktı, hafifşişmansın")
elif bmi <= 35:
print(f"BMI {bmi} çıktı, obez olmuşsun")
else:
print(f"BMI {bmi} çıktı, durum vahim")
*** Tek bir if ve else arasında yazıldığı için tüm satırbaşları aynı yerde. Eğer 1 if / else condition içerisinde farklı bir if / else condition olsaydı 1 tab içeri yazmak gerekecekti.
*** if / else arasına görüldüğü gibi dilediğim kadar elif kodu yazabiliyorum.
ARTIK YIL HESAPLAMA
Şimdiye kadar yazmaya çalıştığım tüm kodlar içerisinde (yani toplam 4 kod içinde :))) en saçma ve dahi can sıkıcı olan buydu çünkü öyle olursa ama böyle de olursa fakat şu olmazsa şeklinde aşırı yokuş önermeler vardı.
Artık yıl (Leap year) hesaplayacağız fakat zaten ingilizce olarak söyleneni anlamak, ardından anladığını tam olarak idrak etmek ve kağıda dökmek (evet kağıt üzerinde çözüyorum :)) baya zaman aldı.
Diyor ki:
on every year that is evenly divisible by 4
**except** every year that is evenly divisible by 100
**unless** the year is also evenly divisible by 400
Yani 4'e bölünürse Leap year ama 100'ede bölünüyorsa ozaman Leap year değil fakat 400e bölünüyorsa ozaman Leap year. Dediğim gibi söyleneni anlamaya çalışırken bile beynim kanadı.
Aşağıdaki gibi bişey çizdim anlayabilmek için, bu işimi baya kolaylaştırdı:
Ardından da şunu yazdım:
Çalıştığına kendim bile zor inandım :)
Bu gecelik de bu kadar.