Koruyucular ve Jokerler
Koşullar ve tümünü kapsayan durumlar ekleyin
Koruyucular ve Jokerler, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Eşleşmeleri Hassaslaştırma
Bazen yapısal bir desen yeterli olmaz; ayrıca bir koşula da ihtiyaç duyarsınız. Koruma koşulları bir duruma if sınaması ekler, joker desenler ise esnek genel durumlar sağlar.
Koruma Koşulu Ekleme
Bir desenden sonra if <condition> yazın. Durum yalnızca desen uyduğunda ve koruma koşulu doğru olduğunda eşleşir.
n = 7
match n:
case x if x < 0:
print('negative')
case x if x == 0:
print('zero')
case x if x > 0:
print('positive')Koruma Koşulları Yakalanan Adları Kullanır
Bir koruma koşulu, desenin bağladığı değişkenlere başvurabilir. Burada yakalanan çiftin eşitliği denetlenir.
point = [3, 3]
match point:
case [x, y] if x == y:
print('on the diagonal')
case [x, y]:
print('off the diagonal')Koruma Koşulu Başarısız Olursa
Yapı eşleşir ancak koruma koşulu yanlış olursa eşleştirme durmaz; bunun yerine sonraki duruma devam eder.
value = 5
match value:
case n if n > 100:
print('big')
case n:
print('fell through to here:', n)Sınıf Desenleriyle Koruma Koşulları
Koruma koşulları, nesne öznitelikleri üzerinde kesin koşullar oluşturmak için sınıf desenleri de dâhil olmak üzere her tür desenle birleştirilebilir.
from dataclasses import dataclass
@dataclass
class Order:
total: float
def discount(order):
match order:
case Order(total=t) if t > 100:
return 'free shipping'
case Order():
return 'standard shipping'
print(discount(Order(150)))
print(discount(Order(50)))Joker Desenine Genel Bakış
Tek başına kullanılan alt çizgi _ her şeyle eşleşir ve hiçbir şeyi bağlamaz. Son durum olarak, daha önce yakalanmayan her şeyi ele alır.
x = 'unexpected'
match x:
case 'a':
print('letter a')
case _:
print('catch-all')Yakalama ve Joker Deseni Karşılaştırması
Adlandırılmış bir yakalama da her şeyle eşleşir ancak değeri saklar; _ ise değeri atar. Gövde içinde değere ihtiyaç duyduğunuzda bir ad kullanın.
value = 42
match value:
case 0:
print('zero')
case other: # capture: keeps the value
print('value was', other)Desenlerin İçinde Joker Kullanma
Alt çizgi, ilgilenmediğiniz bölümleri yok saymak için daha büyük desenlerin içinde kullanılabilir.
record = ('user', 42, 'ignore_me')
match record:
case ('user', user_id, _):
print('user id:', user_id)OR, Koruma Koşulları ve Jokerleri Birleştirme
Bu özellikler bir arada kullanılabilir. Bir OR deseni, ardından bir koruma koşulu ve son olarak bir joker deseni, ifadeli bir sınıflandırıcı oluşturur.
def classify(n):
match n:
case 0 | 1:
return 'binary digit'
case x if x % 2 == 0:
return 'even'
case _:
return 'odd'
print(classify(0))
print(classify(4))
print(classify(7))Tüm Durumları Kapsama
Bazı dillerin aksine Python, bir match deyiminin tüm durumları kapsamasını zorunlu tutmaz. Hiçbir durum eşleşmezse deyim basitçe hiçbir şey yapmaz. Bir dalın her zaman çalışmasını istiyorsanız sonuna case _ ekleyin.
color = 'purple'
result = 'no match'
match color:
case 'red':
result = 'stop'
case 'green':
result = 'go'
print(result)Yapısı Çözümlenmiş Verilerde Koruma Koşulları
Koruma koşulları, dizi ve eşleme desenleriyle doğal biçimde birlikte kullanılır ve az önce çıkardığınız değerleri sınamanıza olanak tanır.
data = [10, 20]
match data:
case [a, b] if a + b > 25:
print('sum is large')
case [a, b]:
print('sum is small')Hızlı Kontrol
Bir desen yapısal olarak eşleştiği hâlde koruma koşulu yanlışsa ne olur?
Özet
Koşullar ve genel durumlar eklemeyi öğrendiniz.
- Koruma koşulları, yakalanan adları kullanabilen bir
ifsınaması ekler. - Başarısız bir koruma koşulu sonraki duruma geçer.
_eşleşir ve değeri atar; bir ad ise değeri yakalar.- Garantili bir dal için sonuna
case _ekleyin.
Sıkça Sorulan Sorular
“Koruyucular ve Jokerler” dersi ücretsiz mi?
Evet — “Koruyucular ve Jokerler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Koruyucular ve Jokerler” dersinde ne öğreneceğim?
Koşullar ve tümünü kapsayan durumlar ekleyin Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Koruyucular ve Jokerler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- match ve case Temelleri
- Dizileri ve Eşlemeleri Eşleştirme
- Sınıf Örüntüleri
- Koruyucular ve Jokerler