
1. Python’da Koşul İfadeleri ile Karşılaştırma ve Mantık Operatörleri
Python’da (aslında tüm programlama dillerinde) yaygın olarak kullanılan koşul ifadeleri karşılaştırma ve mantık operatörleri kullanılarak oluşturulur.
- Eşitlik (==) karşılaştırma operatörü: İki değişkenin eşitliği kontrol edilir.
- Eşitsizlik (!=) karşılaştırma operatörü: İki değişkenin eşitsizliği kontrol edilir.
- Büyüklük (>) karşılaştırma operatörü: İki değişkenden birinin diğerine göre büyüklüğü kontrol edilir.
- Büyük eşitlik (>=) karşılaştırma operatörü: İki değişkenden birinin diğerine göre büyük eşitliği kontrol edilir.
- Küçüklük (<) karşılaştırma operatörü: İki değişkenden birinin diğerine göre küçüklüğü kontrol edilir.
- Küçük eşitlik (<=) karşılaştırma operatörü: İki değişkenden birinin diğerine göre küçük eşitliği kontrol edilir.
- “and, or, not” mantıksal operatörler
Not: Mantıksal değişkenler “True” ve “False” değerlerini alır. Dolayısıyla mantıksal operatörler ile mantıksal değişkenlerin farklı kavramlardır.
2. Python’da “if”, “elif” ve “else” Yapıları
Python’da koşul ifadeleri daima “if” ile başlar. Opsiyonel olarak “elif” ve “else” koşulları ile devam eder.
İki değişkenin birbirine eşitliği if yapısı ve “==” operatörü kullanılarak aşağıda gösterildiği gibi yapılabilir.
x = 5
y = 5.0
if x == y:
print("x, y'ye eşittir.") #Sonuç: x, y'ye eşittir.
Eğer x ve y birbirine eşit ise if koşulu “True” bir değer döndürür ve derleyici koşulun içine girerek koşulun içinde kendisinden bekleneni yapar. Yukarıdaki örnekte if koşulunun gerçekleşmesi durumunda derleyici konsola “x, y’ye eşittir.” yazdıracaktır. Koşul gerçekleşmez ise derleyici konsola “x, y’ye eşittir.” şeklinde bir ifade yazdırmayacak, yani herhangi bir şey yapmayacak, if koşulunun sonunda varsa diğer komutları derlemeye devam edecektir. Koşulun gerçekleşmemesi durumunda if koşulu “False” bir değer döndürür. Koşulun gerçekleşmemesi, yani if koşulunun “False” bir değer döndürmesi durumunda konsola farklı bir ifade yazdırmak için yukarıdaki örneğe aşağıda gösterildiği gibi else yapısı ilave edilebilir.
x = 5
y = 6.0
if x == y:
print("x, y'ye eşittir.")
else:
print("x, y'ye eşit değildir.") #Sonuç: x, y'ye eşit değildir.
Not: if ve else yapısının sonunda iki nokta “:” olduğuna ve if/else koşulunun gerçekleşmesi/gerçekleşmemesi durumlarında içe doğru girinti verildiğine dikkat ediniz. Koşul ifadeleri içindeki satırları girinti vermeden yazarsanız “IndentationError: expected an indented block” şeklinde bir hata alırsınız.
“if” koşulunun gerçekleşmemesi durumunda doğrudan else koşulu yerine arada “elif” koşulu kullanılabilir. “if” koşulundaki önerme doğrulanmazsa (yani “False” bir değer döndürse), derleyici sonraki “elif” (elif ifadesini else if gibi düşünebilirsiniz) koşulundaki önermenin doğruluğunu kontrol edecektir. Eğer “elif” önermesi doğrulanırsa (yani “True” bir değer döndürürse), derleyici “elif” koşulu içindeki komutları yerine getirir; doğrulanmazsa (yani “False” değer döndürürse) “else” koşulu içindeki komutları yerine getirir. Kısacası derleyici komutları yukarıdan aşağıya doğru okur. Bu sırada derleyici sadece önermesi doğru olan koşulun (if, elif, else) içine girer; önermesi doğru olan koşulun içine girdikten sonra, if bloğunda yer alan (varsa) diğer “elif” ya da “else” koşullarının içine girmez.
x = 5
y = 6.0
z = 5
if x == y:
print("x, y'ye eşittir.")
elif x == z:
print("x, z'ye eşittir.") #Sonuç: x, z'ye eşittir.
else:
print("Yukarıdaki önermelerin hiçbiri doğru değildir.")
Yukarıdaki örnekte yer alan “if” bloğunun ilk önermesi “if” koşulu, ikinci önermesi “elif” koşulu ve üçüncü önermesi ise “else” koşuludur. “elif” koşulu ile bloğun yukarıdan aşağıya doğru olan katmanlarını dilediğiniz kadar arttırabilirsiniz.
x = 5
y = 6.0
z = 7
k = 7.0
m = 6
if x == y:
print("x, y'ye eşittir.")
elif x == z:
print("x, z'ye eşittir.")
elif z == k:
print("z, k'ye eşittir.") #Sonuç: z, k'ye eşittir.
elif y == m:
print("y, m'ye eşittir.")
else:
print("Yukarıdaki önermelerin hiçbiri doğru değildir.")
Yukarıdaki “if” bloğu beş katmanlıdır. İlki her zamanki gibi “if” koşulu, takip eden üçü “elif” koşulu ve sonuncusu ise “else” koşuludur. Katmanlardan üçüncüsü olan z’nin k’ye eşitliği ile katmanlardan dördüncüsü olan y’nin m’ye eşitliği doğrudur. Ancak yukarıda, derleyicinin komutları yukarıdan aşağıya doğru okuması sebebiyle, konsola sadece “: z, k’ye eşittir.” ifadesi yazdırılır. Eğer hiçbir if/elif koşulu sağlanamamış olsaydı, konsola else koşulu içindeki “Yukarıdaki önermelerin hiçbiri doğru değildir.” ifadesi yazdırılırdı.
Eğer “if” ile başlayan yeni bir koşul yapısı oluşturursanız, derleyici her if bloğunu kendi içinde bağımsız olarak okur.
x = 5
y = 6.0
z = 7
k = 7.0
m = 6
if x == y:
print("x, y'ye eşittir.")
elif x == z:
print("x, z'ye eşittir.")
elif z == k:
print("z, k'ye eşittir.") #Sonuç: z, k'ye eşittir.
elif y == m:
print("y, m'ye eşittir.")
else:
print("Yukarıdaki önermelerin hiçbiri doğru değildir.")
#Yeni bir if bloğu
x = 5
y = 6.0
if x == y:
print("x, y'ye eşittir.")
else:
print("x, y'ye eşit değildir.") #Sonuç: x, y'ye eşit değildir.
Yukarıdaki örnekte derleyici önce beş katmanlı olan ilk bloğu, sonra da iki katmanlı olan ikinci bloğu okur. Her bloğun sonucunu ayrı ayrı konsola yazdırır.
3. Python’da İç İçe “if” Blokları
Bir if bloğunun içine, yani if/elif/else yapılarından herhangi birine farklı bir if bloğu yuvalandırılabilir.
x = 5
y = 5.0
z = 6
if x == y:
print("x, y'ye eşittir.") #Sonuç: x, y'ye eşittir.
if x ==z:
print("x, z'ye eşittir.")
else:
print("x, z'ye eşit değildir.") #Sonuç: x, z'ye eşit değildir.
elif x == z:
print("x, z'ye eşittir.")
else:
print("Yukarıdaki önermelerin hiçbiri doğru değildir.")
#Yukarıdaki "if" bloğunun bittiği konum burasıdır. Diğer komutlar buradan başlayacaktır. Girintiye dikkat ediniz.
Yukarıdaki örnekte “if” koşulunun içine başka bir “if” koşulu yuvalandırılmıştır. Örneğe göre “if” koşulunun önermesi doğrulanacağı için derleyici “if” koşulunun içine girecek, dıştaki “elif” ve “else” koşulları doğru olsa bile onları kontrol etmeyecektir. “if” koşulunun içine giren derleyici önce konsola “x, y’ye eşittir.” ifadesini yazdıracaktır. Sonra da içerde yuvalanan iki katmanlı diğer “if” bloğunu okumaya başlayacak, içerde yuvalanan if bloğunun önce “if” koşulunu kontrol edecektir. İçerde yuvalanan “if” bloğunun “if” koşulunun önermesi doğrulanacağı için konsola “x, z’ye eşittir.” ifadesi yazdırılacaktır. Sonra derleyici aynı bloğun (yani içerdeki if bloğunun) else koşulunu kontrol etmeden iç içe yuvalanmış “if” bloklarından çıkarak (varsa) takip eden komutları derlemeye başlayacaktır.
4. Python’da Tek Satırlık “if” Yapıları
“if” koşulları aşağıda gösterildiği gibi kısa formlarda (alt alta girinti kullanmak yerine) tek satırda da kullanılabilir.
x = 10
y = 20
z = 30
#Normal form / Sadece if kullanımı
if x < y:
print("x, y'den küçüktür.") #Sonuç: x, y'den küçüktür.
#Kısa form / Sadece if kullanımı
if x < y: print("x, y'den küçüktür.") #Sonuç: x, y'den küçüktür.
print("___________\n")
#Normal form / if ve else kullanımı
if y < x:
print("y, x'ten küçüktür.")
else:
print("y, x'ten küçük değildir.") #Sonuç: y, x'ten küçük değildir.
#Kısa form / if ve else kullanımı
print("y, x'ten küçüktür.") if y < x else print("y, x'ten küçük değildir.")
Not: Yukarıdaki “if” bloklarına ilişkin yapısal açıklamalar sadece eşitlik operatörü için değil, aşağıda bahsedilecek olan tüm operatörler için geçerlidir.
5. Python’da Koşul İfadeleri ve Karşılaştırma Operatörleri
İki değişkenden birinin diğerinden büyük (>) olduğuna ilişkin önerme aşağıda gösterilmiştir.
x = 5
y = 2
if x > y:
print("x, y'den büyüktür.")
Yukarıda x=5 ve y=3 olarak tanımlandığı görülmektedir. “if” ifadesi ile x ve y değişkenleri karşılaştırılmıştır. Örneğe göre x, y’den büyükse (yani önerme doğrulanırsa) konsola “x, y’den büyüktür.” ifadesi yazdırılır.
x = 10
y = 20
if x > y:
print("x, y'den büyüktür.")
İki değişkenden birinin diğerinden büyük veya eşit (>=) olduğuna ilişkin önerme aşağıda gösterilmiştir.
x = 5
y = 2
if x >= y:
print("x, y'den büyük veya ona eşittir.") #Sonuç: x, y'den büyük veya ona eşittir.
İki değişkenden birinin diğerinden küçük (<) olduğuna ilişkin önerme aşağıda gösterilmiştir.
x = 5
y = 2
if y < x:
print("y, x'ten küçüktür.") #Sonuç: y, x'ten küçüktür.
İki değişkenden birinin diğerinden küçük veya eşit (<=) olduğuna ilişkin önerme aşağıda gösterilmiştir.
x = 5
y = 2
if y <= x:
print("y, x'ten küçük veya ona eşittir.") #Sonuç: y, x'ten küçük veya ona eşittir.
İki değişkenden birinin diğerine eşit (==) olduğuna ilişkin önerme aşağıda gösterilmiştir.
x = 5
y = 5
if y == x:
print("y, x'e eşittir.") #Sonuç: y, x'e eşittir.
İki değişkenden birinin diğerine eşit (!=) olmadığına ilişkin önerme aşağıda gösterilmiştir.
x = 5
y = 7
if y != x:
print("y, x'e eşit değildir.") #Sonuç: y, x'e eşit değildir.
“if” koşuluna, if koşulunun doğrulanmadığı durumda başka bir koşulun kontrol edilmesini ifade eden (yukarıda da belirtildiği gibi) elif, else koşulları aşağıda gösterildiği gibi ilave edilebilir.
x = 10
y = 15
if x != y:
print("x, y'ye eşit değildir.") #Sonuç: x, y'ye eşit değildir.
elif x == y:
print("x, y'ye eşittir.")
print("___________\n")
x = 11
y = 10
if x > y:
print("x, y'den büyüktür.") #Sonuç: x, y'den büyüktür.
elif x == y:
print("x, y'ye eşittir.")
else:
print("x, y'ye eşit değil ve y'den büyük değildir.")
print("___________\n")
x = 9
y = 10
if x > y:
print("x, y'den büyüktür.")
elif x == y:
print("x, y'ye eşittir.")
else:
print("x, y'ye eşit değil ve y'den büyük değildir.") #Sonuç: x, y'ye eşit değil ve y'den büyük değildir.
Daha önce de belirtildiği gibi “elif” koşulu arzu edildiği kadar ilave edilebilir.
x = 10
y = 15
if x > y:
print("x, y'den büyüktür.")
elif x == y:
print("x, y'ye eşittir.")
elif x >= y:
print("x, y'den büyük veya eşittir.")
elif x + 5 > y:
print("x+5, y'den büyüktür.")
else:
print("if ve elif koşullarının hiçbiri sağlanamaz ise konsola bu ifade yazdırılır.") #Sonuç: if ve elif koşullarının hiçbiri sağlanamaz ise konsola bu ifade yazdırılır.
Python “if” koşullarını daha önce belirtildiği gibi yukarıdan aşağıya doğru tarayarak kontrol eder. Herhangi bir “if”/”elif” koşulu gerçekleşirse, gerçekleşen koşulun aşağısında kalan koşullar kontrol edilmeyecektir, yani koşul tamamlanmış olacaktır.
x = 10
y = 10
if x > y:
print("x, y'den büyüktür.")
elif x == y:
print("x, y'ye eşittir.") #Sonuç: x, y'ye eşittir. (Buradan sonraki koşullar kontrol edilmez. Örneğin alttaki x>=y koşulu da doğrudur, ancak Python artık onu kontrol etmez.)
elif x >= y:
print("x, y'den büyük veya eşittir.")
elif x + 5 > y:
print("x+5, y'den büyüktür.")
else:
print("if ve elif koşullarının hiçbiri sağlanamaz ise konsola bu ifade yazdırılır.") #Sonuç: if ve elif koşullarının hiçbiri sağlanamaz ise konsola bu ifade yazdırılır.
print("___________\n")
x = 10
y = 10
if x > y:
print("x, y'den büyüktür.")
elif x >= y:
print("x, y'den büyük veya eşittir.") #Sonuç: x, y'den büyük veya eşittir. (Buradan sonraki koşullar kontrol edilmez. Örneğin alttaki x==y koşulu da doğrudur, ancak Python artık onu kontrol etmez.)
elif x == y:
print("x, y'ye eşittir.")
elif x + 5 > y:
print("x+5, y'den büyüktür.")
else:
print("if ve elif koşullarının hiçbiri sağlanamaz ise konsola bu ifade yazdırılır.") #Sonuç: if ve elif koşullarının hiçbiri sağlanamaz ise konsola bu ifade yazdırılır.
6. Python’da Koşul İfadeleri ve Mantık Operatörleri (and, or, not)
“and” operatörü ile birden fazla koşul içerebilen bir “if” koşulu yazılabilir.
x = 10
y = 20
z = 30
if x < y and y < z: # Her iki koşul da doğru olmalıdır; en az biri sağlanmazsa koşul gerçekleşmez.
print("x, y'den, y de z'den küçüktür.") #Sonuç: x, y'den, y de z'den küçüktür.
else:
print("Yukarıdaki koşulun sağlanmadığı durumu ifade eder.")
#Not: Hem x < y hem de y < z koşulu doğru olduğu için "if" koşulu doğrulandı.
print("___________\n")
x = 10
y = 20
z = 30
if x < y and y < x: # Her iki koşul da doğru olmalıdır; en az biri sağlanmazsa koşul gerçekleşmez.
print("x, y'den, y de z'den küçüktür.")
else:
print("Yukarıdaki koşulun sağlanmadığı durumu ifade eder.") #Sonuç: Yukarıdaki koşulun sağlanmadığı durumu ifade eder.
#Not: x, y'den küçüktür. Ancak ikinci koşul olan y<x doğru değildir. O yüzden "if" koşulu doğrulanamadı ve else koşulu gerçekleşti.
“and” operatörü belirtilen koşulların tümünün doğru olması gerektiğini ifade eder.
Bir “if“ ya da “elif” koşulunda arzu edildiği kadar “and” operatörü kullanılabilir. “else” koşulunda herhangi bir mantık (ya da karşılaştırma) operatörü kullanılmaz.
Not: “else” koşulunun içine yeni bir if bloğu yuvalamak isterseniz, yuvalanan if ve elif koşullarında mantıksal operatörler kullanılabilir. Ancak else koşulunun kendisinde herhangi bir operatör kullanamazsınız.
x = 10
y = 20
z = 30
if x > y and y < z: #Tüm koşullar doğru olmalıdır; en az biri sağlanmazsa koşul gerçekleşmez.
print("x, y'den büyük, y ise z'den küçüktür.")
elif x < y and (x+y-1) < z and (y+5) < z: #Tüm koşullar doğru olmalıdır; en az biri sağlanmazsa koşul gerçekleşmez.
print("x, y'den küçük, x+y-1 z'den küçük ve y+5 z'den küçüktür.") #Sonuç: x, y'den küçük, x+y-1 z'den küçük ve y+5 z'den küçüktür.
else:
print("Yukarıdaki koşulların sağlanmadığı durumu ifade eder.")
“or” operatörü ile birden fazla koşul içerebilen bir “if” koşulu yazılabilir.
x = 10
y = 20
z = 30
if x < y or y < x: # Her iki koşuldan en az birinin doğru olması yeterlidir.
print("x, y'den ya da y, x'ten küçüktür.") #Sonuç: x, y'den ya da y, x'ten küçüktür.
else:
print("Yukarıdaki koşulun sağlanmadığı durumu ifade eder.") # İki koşuldan hiçbirinin doğru olmaması durumu
#Not: x < y ya da y < x koşullarının en az biri doğru olduğu için "if" koşulu doğrulandı.
“or” operatörü belirtilen ifadelerin en az birinin doğru olması gerektiğini ifade eder.
Not: “and” operatöründe olduğu gibi bir “if“ ya da “elif” koşulunda arzu edildiği kadar “or” operatörü kullanılabilir. “else” koşulunda herhangi bir operatör kullanılmaz.
“if” koşulları, daha önce belirtildiği gibi başka bir “if”, “elif“ ya da “else” koşulunun içine yuvalanabilir.
x = 10
y = 20
z = 30
#if, and, or vb. ifadelerin tümünü küçük harfle yazdığınızdan emin olun.
if x < y and y < z:
if (x+12) < y or (x+y) > z:
print("Not 1: if bloklarının girintilerini dikkat edin.")
elif (x + y + z) > 50:
print("Not 2: if bloklarının girintilerini dikkat edin.") #Sonuç: Not 2: if bloklarının girintilerini dikkat edin.
elif x < y and (x+y-1) < z and (y+5) < z:
print("x, y'den küçük, x+y-1 z'den küçük ve y+5 z'den küçüktür.")
else:
print("Yukarıdaki dış blokta yer alan if/elif koşulların sağlanmadığı durumu ifade eder.")
print("___________\n")
x = 10
y = 20
z = 30
#Aşağıdaki kodun sonucu boş olacaktır. Çünkü "if x < y and y < z" koşulu gerçekleşti.
#Sonra içerideki diğer if bloğu kontrol edildi, ancak herhangi bir koşul sağlanmadı.
#Son olarak söz konusu iç blokta dikkat edilirse "else" koşulu da yok.
#Dış bloktaki sonraki elif koşulu doğrulanabilir önermeye sahip olmasına rağmen,
#hatırlanacağı üzere dış bloktaki ilk if koşulu çalıştığı için Python sonraki elif ya da else koşullarını kontrol etmez.
if x < y and y < z:
if (x+12) < y or (x+y) > z:
print("Not 3: if bloklarının girintilerini dikkat edin.")
elif (x + y + z) > 60:
print("Not 4: if bloklarının girintilerini dikkat edin.")
#Sonucu burada bir else varmış gibi düşünebilirsiniz. Ama konsola hiç bir şey yazdırılmayacak.
elif x < y and (x+y-1) < z and (y+5) < z:
print("x, y'den küçük, x+y-1 z'den küçük ve y+5 z'den küçüktür.")
else:
print("Yukarıdaki dış blokta yer alan if/elif koşulların sağlanmadığı durumu ifade eder.")
print("___________\n")
x = 10
y = 20
z = 30
#Aşağıda konsola iki farklı sonuç yazdırılacaktır. Biri dış bloktaki if koşulunun sonucu, diğeri iç bloktaki else koşulunun sonucudur.
if x < y and y > z:
print("if bloklarının girintilerini dikkat edin.")
elif x < y and (x+y-1) < z and (y+5) < z:
print("x, y'den küçük, x+y-1 z'den küçük ve y+5 z'den küçüktür.") #ilk Sonuç: x, y'den küçük, x+y-1 z'den küçük ve y+5 z'den küçüktür.
if (x+12) < y or (x+y) > z:
print("Not 5: if bloklarının girintilerini dikkat edin.")
elif (x + y + z) > 60:
print("Not 6: if bloklarının girintilerini dikkat edin.")
else:
print("Not 7: if bloklarının girintilerini dikkat edin.") #İkinci Sonuç: Not 7: if bloklarının girintilerini dikkat edin.
else:
print("Yukarıdaki dış blokta yer alan if/elif koşulların sağlanmadığı durumu ifade eder.")
Arzu edildiği kadar if/elif/else koşullarının içine, iç içe if/elif/else blokları yuvalandırılabilir. Ancak iç içe yuvalama yaparken if/elif/else ifadelerinin girintilerini yukarıda gösterildiği gibi arttırmanız gerektiğini unutmayın.
Mantıksal operatörlerden biri olan “not” operatörü aşağıda gösterildiği gibi bir önermeyi olumsuz yapar.
x = 10
y = 20
if not x > y: # not ifadesi, koşula x'in y'den büyük olması koşulu doğru değilse anlamı katar.
print("not ifadesi, koşula x'in y'den büyük olması koşulu doğru değilse anlamı katar.") #Sonuç: not ifadesi, koşula x'in y'den büyük olması koşulu doğru değilse anlamı katar.
else:
print("Yukarıdaki koşulun sağlanmadığı durumu ifade eder.")
7. Python’da “if” ve “in” Yapısı
Python’da if koşulu aşağıda gösterildiği gibi “in” ifadesi ile birlikte kullanılabilir.
if "hon" in "Python":
print("'Python' ifadesi içinde 'hon' ifadesi geçiyor.")
#Sonuç: 'Python' ifadesi içinde 'hon' ifadesi geçiyor.
Python’da if koşulundaki “in” ifadesi, “not” ile olumsuz yapıldıktan sonra da kullanılabilir.
if "a" not in "Python":
print("'Python' içinde 'a' ifadesi geçmiyor.")
#Sonuç: 'Python' içinde 'a' ifadesi geçmiyor.
Python’da if ve in yapısı liste tipi değişkenlerde de aşağıda gösterildiği gibi kullanılabilir.
x = ["a", "b", "c", "d", "e"]
if "d" in x:
print("'d' ifadesi x değişkeninin elemanlarından biridir.")
#Sonuç: 'd' ifadesi x değişkeninin elemanlarından biridir.
8. Python’da “pass” İfadesi
Bir koşulun gerçekleşmesine rağmen (sonucun konsola yazdırılması vb.) herhangi bir işlem yapılmasını istemiyorsanız “pass” ifadesini kullanabilirsiniz.
x = 10
y = 20
z = 30
if x < y or y < x: # Her iki koşuldan en az birinin doğru olması yeterlidir.
pass #Sonuç: Burası, ama pass geçildi. :) Konsola birşey yazdırılmayacaktır.
else:
print("Yukarıdaki koşulun sağlanmadığı durumu ifade eder.") # İki koşuldan hiçbirinin doğru olmaması durumu
Not: “pass” ifadesi sadece if koşullarında değil, döngüler, sınıflar, fonksiyonlar gibi birçok yerde yukarıda belirtilen göreviyle kullanılabilir.
9. Python’da “if” Bloklarıyla İlgili Bir Örnek
Aşağıda if/elif/else bloklarıyla birlikte input metodu, karşılaştırma ve mantık operatörleri kullanılmıştır. Örnek, iki adet input metoduyla kullanıcıdan integer tipinde veri almaktadır. İlki yıl bilgisi, ikincisi ise ay bilgisidir. Sonrada kullanıcıdan alınan bilgileri işleyerek yılın 366 gün mü, yoksa 365 gün mü içerdiğini hesaplıyor. Bunu yapabilmek için basitçe girilen yılın 4’e bölümünden kalan 0 ise 366, 0 değilse de 365 değerini döndürüyor. Artık günün olduğu yıllarda şubat ayını 29, olmadığı yıllarda ise 28 gün olarak hesaplıyor. Ayların kaç gün içerdiğiyle ilgili olarak da aşağıda gösterildiği gibi 30 gün içeren ve 31 gün içeren ayları “or” yapılarıyla birleştiriyor.
Not: x bir integer değişken olmak üzere (x %4) ifadesi x’in 4’e bölümünden kalanı, yani (x Mod 4) değerini verir. Matematiksel operatörler sonraki makalelerde detaylı bir şekilde açıklanacaktır. Aşağıdaki örnekte yer alan mod işlemini bu çerçevede değerlendirebilirsiniz.
myYear = int(input ("Yıl giriniz: " ) )
myMonth = int(input("Ay giriniz: " ) )
if (myYear % 4) == 0 and myYear > 0:
print(myYear, "yılı artık gün içerdiğinden 366 gündür.")
if(myMonth == 1 or myMonth == 3 or myMonth == 5 or myMonth == 7 or myMonth == 8 or myMonth == 10 or myMonth == 12):
print(str(myMonth) + ". ay 31 gündür.")
elif ( myMonth == 4 or myMonth == 6 or myMonth == 9 or myMonth == 11 ):
print(str(myMonth) + ". ay 30 gündür.")
elif ( myMonth == 2 ):
print(myYear, "yılının", str(myMonth) + ". ayı artık gün içerdiği için 29 gündür.")
else:
print("Geçersiz bir ay girdiniz.")
elif (myYear % 4) != 0 and myYear > 0:
print(myYear, "yılı artık gün içermediğinden 365 gündür.")
if ( myMonth == 1 or myMonth == 3 or myMonth == 5 or myMonth == 7 or myMonth == 8 or myMonth == 10 or myMonth == 12 ):
print(str(myMonth) + ". ay 31 gündür.")
elif ( myMonth == 4 or myMonth == 6 or myMonth == 9 or myMonth == 11 ):
print(str(myMonth) + ". ay 30 gündür.")
elif ( myMonth == 2 ):
print(myYear, "yılının", str(myMonth) + ". ayı artık gün içermediği için 28 gündür.")
else:
print("Geçersiz bir ay girdiniz.")
else:
print("Geçersiz bir yıl girdiniz.")
# Yılı 2020, ayı ise 2 girdiğimiz varsayımında Sonuç:
# 2020 yılı artık gün içerdiğinden 366 gündür.
# 2020 yılının 2. ayı artık gün içerdiği için 29 gündür.
İshak Kutlu, Veri Bilimi İçin Python Notları
