Python'da Koşullu İfadeler için En İyi Uygulamalar
Bu makale, Python'da koşullu ifadeler için en iyi uygulamaları açıklar.
YouTube Video
Python'da Koşullu İfadeler için En İyi Uygulamalar
Python'da if deyimi, koşullu dallanmayı gerçekleştirmek için temel bir yapıdır ve kodun okunabilirliğini ve sürdürülebilirliğini önemli ölçüde etkiler. Burada, if deyimlerini kullanırken dikkat edilmesi gereken en iyi uygulamaları detaylı olarak tartışacağız.
Açık koşullu ifadeler kullanın
Koşullu ifadeleri gereksiz ifadelerden kaçınarak özlü ve açık bir şekilde yazın.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass- Python'da bir koşulun doğru olduğunu
if condition:yazarak belirtebilirsiniz.
Birden fazla koşulu birleştirme
Birden fazla koşulu birleştirirken and veya or kullanın. Bununla birlikte, koşullu ifadeler karmaşık hale geldiğinde okunabilirlik azalabilir, bu nedenle aşağıdaki ayarlamaları dikkate alın:.
1age = 15
2is_student = True
3
4### Bad Example
5# Complex condition
6if (age > 18 and age < 65) or (is_student and age > 15):
7 pass
8
9### Good Example
10# Improving readability
11is_working_age = 18 < age < 65
12is_eligible_student = is_student and age > 15
13
14if is_working_age or is_eligible_student:
15 pass- Koşulları ayırarak ve bunları değişkenlere atayarak okunabilirlik artırılabilir.
and/or kısa devre değerlendirmesi
and veya or kullanılan koşullu ifadelerde, eğer sonuç yalnızca sol taraftaki değerden belirlenebiliyorsa kısa devre değerlendirmesi gerçekleşir ve sağ taraf değerlendirilmez. Bunu anlamak, gereksiz işlemlerden kaçınmanıza ve hataları önlemenize yardımcı olur.
1user = None
2def expensive_check():
3 return True
4
5# Example of short-circuiting with 'and'
6if user and user.is_active:
7 # If user is None, user.is_active will NOT be evaluated
8 print("Active user found.")
9
10# Example of short-circuiting with 'or'
11if user.is_admin or expensive_check(user):
12 # If user.is_admin is True, expensive_check will NOT be called.
13 print("Access granted.")
14else:
15 print("Access denied.")- Kısa devre değerlendirmesini kullanarak, işlem verimliliğini ve güvenliğini artırabilirsiniz.
and ve or önceliği
and, or'dan daha yüksek önceliğe sahiptir. Bu nedenle, koşulları dikkatsizce birleştirirseniz, istenmeyen sonuçlar elde edebilirsiniz. Niyetinizi netleştirmek için parantez kullanmak önemlidir.
1age = 15
2is_student = True
3
4### Unclear example
5# This is interpreted as: age > 18 and (age < 65 or is_student)
6if age > 18 and age < 65 or is_student:
7 pass
8
9### Clear example
10# Explicit parentheses make the intended logic obvious
11if (age > 18 and age < 65) or is_student:
12 pass- Parantez kullanarak,
andveorönceliğini netleştirebilir ve beklenmeyen hataların riskini azaltabilirsiniz.
Truthy ve Falsy'yi Anlayın
Python'da aşağıdaki değerler False olarak değerlendirilir:.
HiçbiriYanlış0sayısı (ve0.0dahil)- Boş sıra tipleri (örneğin, boş listeler, demetler veya dizgiler)
- Örnekler:
[],(),""
- Örnekler:
- Boş sözlük
- Örnek:
{}
- Örnek:
Bunu kullanarak koşullu ifadelerinizi basitleştirebilirsiniz.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 passelif ve else'ın doğru kullanımı
Birden fazla koşulu değerlendirirken elif kullanın. Sonunda varsayılan bir davranış tanımlamak için else kullanın.
1score = 80
2
3if score >= 90:
4 grade = "A"
5elif score >= 80:
6 grade = "B"
7elif score >= 70:
8 grade = "C"
9else:
10 grade = "F"elsezorunlu değildir. Tüm koşullar kapsanıyorsa, atlanabilir.- Koşullu ifadelerin sırasına dikkat edin ve mantıklı bir şekilde tekrar olmadan düzenleyin.
İç içe yerleştirme derinliğini sınırlayın.
if ifadelerinin derin iç içe yerleştirilmesi kodun okunmasını zorlaştırır.
1def access_resource():
2 return True
3
4### Bad Example
5def deep_nest(user, resource):
6 if user.is_authenticated:
7 if user.has_permission:
8 if resource.is_available:
9 access_resource()
10
11### Good Example
12def early_return(user, resource):
13 if not user.is_authenticated:
14 return
15 if not user.has_permission:
16 return
17 if not resource.is_available:
18 return
19
20 access_resource()- Erken dönüşler kullanmak iç içe yerleştirmeyi azaltabilir ve kodu daha sade hale getirebilir.
Tek satırlık if ifadeleri kullanmaktan kaçının.
If ifadelerini tek satırda yazmak mümkün olsa da bu, okunabilirliği azaltabilir.
1condition = False
2def do_something():
3 return True
4
5### Bad Example
6if condition: do_something()
7
8### Good Example
9if condition:
10 do_something()- Tek satırlık if ifadeleri yalnızca kısa koşullar veya eylemler için kabul edilebilir, ancak aşırı uzun kod yazmaktan kaçının.
Üçlü (ternary) operatör veya or ile sadeleştirme
Basit koşullu dallanmalar için üçlü operatör veya or kullanmak kodunuzu daha sade hale getirebilir. Ancak, bunların aşırı kullanımı kodun okunmasını zorlaştırır; bu yüzden sadece basit ve sezgisel koşullar için kullanılmalıdır.
1is_admin = True
2input_name = None
3
4# Regular if statement
5if is_admin:
6 role = "Administrator"
7else:
8 role = "User"
9
10# Simplified using an inline if
11role = "Administrator" if is_admin else "User"
12
13# Use 'or' to provide a default value
14name = input_name or "Guest"- Basit koşullar için üçlü operatör veya
orkullanmak, kodunuzu daha kısa ve anlaşılır hale getirebilir.
Koşullu ifadeleri önbelleğe almak.
Maliyetli hesaplamalar veya fonksiyon çağrılarını içeren koşullu ifadeler performansı artırmak için değişkenlerde önbelleğe alınabilir.
1def expensive_function():
2 pass
3
4def another_expensive_function():
5 pass
6
7### Bad Example
8if expensive_function() and another_expensive_function():
9 pass
10
11### Good Example
12result1 = expensive_function()
13result2 = another_expensive_function()
14if result1 and result2:
15 passÖzet
Python'un if ifadeleri basit ve güçlü araçlardır, ancak yanlış kullanımı kodu karmaşık ve zor okunur hale getirebilir. Burada tanıtılan en iyi uygulamaları benimseyerek, kodunuzun okunabilirliğini, sürdürülebilirliğini ve verimliliğini artırabilirsiniz.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.