Python'daki if else ifadesi, bir koşul doğru olduğunda bir kod bloğunu ve koşul yanlış olduğunda başka bir kod bloğunu çalıştırarak iki yönlü karar verme sağlar. Koşul yanlış olduğunda hiçbir şey yapmayan basit bir if ifadesinin aksine, if else iki kod yolundan birinin her zaman çalışacağını garanti eder. Bu, hem başarı hem de başarısızlık senaryolarını ele alması gereken programlar oluşturmak için gereklidir.
Temel if else Sözdizimi
if else ifadesi, koşul False olarak değerlendirildiğinde alternatif bir eylem ekleyerek temel if ifadesini genişletir.
if condition:
# code to execute if condition is True
statement1
else:
# code to execute if condition is False
statement2 else anahtar kelimesi, if koşulu tarafından yakalanmayan her şeyi yakalar ve if ifadesi tarafından kapsanmayan senaryolar için bir "yakalama tümü" görevi görür. Python, if ve else anahtar kelimelerinden sonra iki nokta üst üste (:) kullanır, ardından girintili kod blokları gelir.
Örnek 1: Basit if else İfadesi
a = 200
b = 33
if b > a:
print("b is greater than a")
else:
print("b is not greater than a") b is not greater than a
Since 33 is not greater than 200, the condition is false, so the else block executes.
if else Nasıl Çalışır
if else ifadesi basit bir yürütme akışı izler:
- Python,
ifanahtar kelimesinden sonraki koşulu değerlendirir - Koşul
Trueise, ilk girintili blok çalıştırılır veelsebloğu atlanır - Koşul
Falseise, ilk blok atlanır veelsebloğu çalıştırılır - Bloklardan biri tamamlandıktan sonra, yürütme tüm
if elseyapısından sonraki kodla devam eder
Örnek: Sıcaklık Kontrolü
temperature = 15
if temperature > 20:
print("It's warm outside")
else:
print("It's cool outside")
print("Have a nice day!") It's cool outside Have a nice day!
Son print ifadesi, hangi dalın alındığına bakılmaksızın çalıştırılır.
if else ile Değerleri Karşılaştırma
if else ifadesi, sayısal veya dize değerlerine dayalı kararlar vermek için yaygın olarak karşılaştırma operatörleri kullanır.
Örnek 1: Sayı Karşılaştırması
number = 7
if number % 2 == 0:
print("The number is even")
else:
print("The number is odd") The number is odd
Örnek 2: Dize Karşılaştırması
username = "admin"
if username == "admin":
print("Welcome, Administrator!")
else:
print("Welcome, User!") Welcome, Administrator!
Örnek 3: Yaş Doğrulama
age = 16
if age >= 18:
print("You are eligible to vote")
else:
print("You are not eligible to vote yet") You are not eligible to vote yet
if else Bloklarında Birden Fazla İfade
if ve else bloklarının her ikisi de tutarlı girinti sağladıkları sürece birden fazla ifade içerebilir.
Örnek:
score = 85
if score >= 90:
print("Excellent performance!")
print("You earned an A grade")
grade = "A"
bonus_points = 10
else:
print("Good effort!")
print("Keep working hard")
grade = "B"
bonus_points = 5
print(f"Your grade is: {grade}")
print(f"Bonus points: {bonus_points}") Good effort! Keep working hard Your grade is: B Bonus points: 5
Tek Satırlık if else (Üçlü Operatör)
Tek ifadeli basit koşullar için, Python daha özlü kod oluşturmak için bir satırda if else yazmanıza izin verir.
Standart Format:
age = 20
if age >= 18:
status = "adult"
else:
status = "minor"
print(status) Tek Satır Formatı (Üçlü Operatör):
age = 20
status = "adult" if age >= 18 else "minor"
print(status) adult
More Examples:
# Example 1: Maximum of two numbers
a = 10
b = 20
max_value = a if a > b else b
print(f"Maximum: {max_value}") # Output: Maximum: 20
# Example 2: Pass/Fail determination
marks = 75
result = "Pass" if marks >= 50 else "Fail"
print(result) # Output: Pass
# Example 3: Sign determination
number = -5
sign = "Positive" if number > 0 else "Non-positive"
print(sign) # Output: Non-positive Bu kompakt sözdizimi, basit atamalar ve hızlı koşullar için özellikle kullanışlıdır.
Koşulları Mantıksal Operatörlerle Birleştirme
if else ifadelerinde karmaşık koşullar oluşturmak için and, or ve not operatörlerini kullanabilirsiniz.
Örnek 1: and Operatörünü Kullanma
age = 25
has_license = True
if age >= 18 and has_license:
print("You can drive")
else:
print("You cannot drive") Araba kullanabilirsiniz
Örnek 2: or Operatörünü Kullanma
day = "Saturday"
if day == "Saturday" or day == "Sunday":
print("It's the weekend!")
else:
print("It's a weekday") Hafta sonu!
Örnek 3: not Operatörünü Kullanma
is_raining = False
if not is_raining:
print("You don't need an umbrella")
else:
print("Take an umbrella") You don't need an umbrella
Örnek 4: Sıcaklık Aralığı Kontrolü
temperature = 35
if temperature > 30 and temperature < 40:
print("It's a hot day!")
else:
print("Temperature is moderate") It's a hot day!
İç İçe if else İfadeleri
Birden fazla karar verme seviyesini ele almak için if else ifadelerini diğer if else ifadelerinin içine yerleştirebilirsiniz.
Örnek 1: Temel İç İçe Geçme
number = 10
if number >= 0:
if number == 0:
print("Number is zero")
else:
print("Number is positive")
else:
print("Number is negative") Number is positive
Örnek 2: İç İçe Geçme ile Not Sınıflandırması
marks = 85
if marks >= 50:
print("You passed!")
if marks >= 90:
print("Grade: A - Excellent!")
else:
print("Grade: B - Good job!")
else:
print("You failed")
print("Please retake the exam") You passed! Grade: B - Good job!
Örnek 3: Çok Seviyeli Kullanıcı Kimlik Doğrulama
username = "admin"
password = "secret123"
if username == "admin":
if password == "secret123":
print("Access granted")
print("Welcome to admin panel")
else:
print("Incorrect password")
else:
print("User not found") Access granted Welcome to admin panel
İç içe geçme güçlü olsa da, aşırı iç içe geçme kodu okumayı zorlaştırabilir—daha temiz çoklu koşul mantığı için elif kullanmayı düşünün.
if else ile Kullanıcı Girişini Doğrulama
if else ifadesi, giriş doğrulama ve hata işleme için gereklidir.
Örnek 1: Boş Dize Kontrolü
username = ""
if len(username) > 0:
print(f"Welcome, {username}!")
else:
print("Error: Username cannot be empty") Error: Username cannot be empty
Örnek 2: Şifre Uzunluk Doğrulama
password = "abc"
if len(password) >= 8:
print("Password is valid")
else:
print("Password must be at least 8 characters") Password must be at least 8 characters
Örnek 3: Sayısal Aralık Doğrulama
age = 150
if age > 0 and age <= 120:
print(f"Age {age} is valid")
else:
print("Invalid age entered") Invalid age entered
Örnek 4: Liste Üyeliği Kontrolü
allowed_users = ["alice", "bob", "charlie"]
current_user = "david"
if current_user in allowed_users:
print("Access granted")
else:
print("Access denied") Access denied
elif ile Genişletme
Bu sayfa if else üzerine odaklansa da, birden fazla koşulu sırayla test etmek için if ve else arasına elif (else if) ekleyebilirsiniz.
temperature = 22
if temperature > 30:
print("It's hot outside!")
elif temperature > 20:
print("It's warm outside")
elif temperature > 10:
print("It's cool outside")
else:
print("It's cold outside!") It's warm outside
else ifadesi en sonda gelmeli ve başka hiçbir koşul doğru olmadığında varsayılan olarak hareket etmelidir.
Yaygın Kullanım Durumları
Kullanım Durumu 1: Giriş Sistemi
stored_password = "python123"
entered_password = "python123"
if entered_password == stored_password:
print("Login successful")
else:
print("Invalid password") Login successful
Kullanım Durumu 2: İndirim Hesaplayıcı
purchase_amount = 120
if purchase_amount >= 100:
discount = purchase_amount * 0.10
print(f"You get a 10% discount: ${discount}")
else:
print("No discount available") You get a 10% discount: $12.0
Kullanım Durumu 3: Geçti/Kaldı Sistemi
exam_score = 45
passing_score = 50
if exam_score >= passing_score:
print("Congratulations! You passed")
else:
print(f"Sorry, you need {passing_score - exam_score} more points to pass") Sorry, you need 5 more points to pass
Kullanım Durumu 4: Dosya Uzantısı Kontrolcüsü
filename = "document.pdf"
if filename.endswith(".pdf"):
print("This is a PDF file")
else:
print("This is not a PDF file") This is a PDF file
Kullanım Durumu 5: Artık Yıl Kontrolcüsü
year = 2024
if year % 4 == 0:
print(f"{year} is a leap year")
else:
print(f"{year} is not a leap year") 2024 is a leap year
Kaçınılması Gereken Yaygın Hatalar
Hata 1: İki Nokta Üst Üsteyi Unutma
# Wrong
if number > 0
print("Positive")
else
print("Not positive")
# Correct
if number > 0:
print("Positive")
else:
print("Not positive") Hata 2: Tutarsız Girinti
# Wrong
if age >= 18:
print("Adult")
else:
print("Minor") # Different indentation
# Correct
if age >= 18:
print("Adult")
else:
print("Minor") Hata 3: else'den Sonra elif Kullanma
# Wrong
if x > 0:
print("Positive")
else:
print("Not positive")
elif x < 0: # SyntaxError
print("Negative")
# Correct
if x > 0:
print("Positive")
elif x < 0:
print("Negative")
else:
print("Zero") Hata 4: Boş Kod Blokları
# Wrong
if condition:
# Code here
else:
# This will cause an error
# Correct - use pass for placeholder
if condition:
print("Condition met")
else:
pass # Do nothing Yer tutucu için pass kullanın
En İyi Uygulamalar
Uygulama 1: Koşulları Basit ve Okunabilir Tutun
# Less readable
if not (age < 18 or not has_permission):
print("Allowed")
# More readable
if age >= 18 and has_permission:
print("Allowed") Uygulama 2: Anlamlı Değişken İsimleri Kullanın
# Poor
if x > 100:
y = True
# Better
if purchase_amount > 100:
eligible_for_discount = True Uygulama 3: Her İki Yolu da Açıkça İşleyin
# When both outcomes matter, use if else
file_exists = True
if file_exists:
print("Loading file...")
else:
print("Creating new file...") Her iki sonuç da önemli olduğunda, if else kullanın
Uygulama 4: Derin İç İçe Geçmeden Kaçının
# Harder to read
if condition1:
if condition2:
if condition3:
action()
# Better - use elif or logical operators
if condition1 and condition2 and condition3:
action() Kendiniz Deneyin
if else ifadeleriyle deney yapın
// Sonuçları görmek için "Kodu Çalıştır"a tıklayın
İlgili Konular
Sık Sorulan Sorular
Python'da if ve if else arasındaki fark nedir?
Bir if ifadesi yalnızca koşul doğru olduğunda kod çalıştırır ve aksi takdirde hiçbir şey yapmaz. Bir if else ifadesi, iki kod bloğundan birinin çalışacağını garanti eder—koşul doğru olduğunda if bloğu veya yanlış olduğunda else bloğu.
elif olmadan bir if else'ye sahip olabilir miyim?
Evet, if else elif olmadan mükemmel çalışır. elif anahtar kelimesi yalnızca birden fazla koşulu sırayla test etmek istediğinizde gereklidir.
Python if else ifadelerinde koşulların etrafında parantez kullanmam gerekir mi?
Hayır, parantezler isteğe bağlıdır. Hem if (x > 5): hem de if x > 5: geçerlidir, ancak ikincisi Python'da daha yaygın olarak kullanılır.
Bir satırda if else kullanabilir miyim?
Evet, Python üçlü operatörü destekler: result = "yes" if condition else "no". Bu, basit atamalar için kullanışlıdır.
Bir else bloğunda kodu girintilemeyi unutursam ne olur?
Python, kod bloklarını tanımlamak için tutarlı girinti gerektirdiğinden bir IndentationError yükseltecektir.
else, if olmadan kendi başına görünebilir mi?
Hayır, else her zaman önceki bir if ifadesiyle eşleşmelidir. else ifadesini bağımsız olarak kullanamazsınız.