Python alıştırmaları
Küçük, gerçek problemlerle pratik.
Seviye 201 · 16 ders · 21 pratik lab
Dersler
Dil temelleri
- Alıştırma: dizgiler ve döngüler: Metinleri işleme ve döngüler kurma becerini küçük, gerçekçi problemlerle pekiştirirsin.
- Alıştırma: fonksiyonlar ve kapsam: Fonksiyon yazma ve değişkenlerin nerede geçerli olduğunu (kapsam) anlama becerini küçük problemlerle pekiştirirsin.
- Alıştırma: listeler, sözlükler, kümeler: Liste, sözlük ve küme gibi veri yapılarını doğru yerde kullanma becerini küçük problemlerle pekiştirirsin.
- Alıştırma: kapsamalar ve üreteçler
- Kısa görev: iki personel listesini karşılaştır
Veri ve dosyalar
- Alıştırma: düzenli ifadeler ve ayrıştırma: Düzenli ifadelerle (metin deseni) günlük satırlarından istediğin bilgiyi ayıklamayı küçük problemlerle çalışırsın.
- Alıştırma: dosya, CSV ve JSON: Dosya, CSV ve JSON okuyup yazma becerini gerçekçi küçük görevlerle pekiştirirsin.
- Alıştırma: tarih aralıkları ve süreler
- Alıştırma: hatalara dayanıklı veri okuma
- Kısa görev: CSV'den aylık gider raporu
Tasarım ve algoritma
- Alıştırma: sınıflar ve dekoratörler: Sınıf yazmayı ve dekoratörlerle fonksiyonlara ek davranış katmayı küçük problemlerle çalışırsın.
- Alıştırma: küçük algoritmalar: Arama ve sıralama gibi küçük algoritmaları adım adım düşünüp kodlama becerini küçük problemlerle geliştirirsin.
- Alıştırma: özyineleme ve klasör ağaçları
- Alıştırma: HTTP istekleri ve web verisi: Web adreslerinden veri çekip işleme becerini HTTP istekleriyle küçük, gerçekçi problemlerde pekiştirirsin.
- Kısa görev: bir sayfadaki kırık bağlantıları bul
Bitirme
- Bitirme görevi: dosyada saklanan arıza kaydı takipçisi
Pratik lablar
- Çakışan rezervasyon aralıklarını birleştirmek: Lavanta Otel'in toplantı salonu rezervasyonlarında çakışan ve bitişik aralıkları birleştir, boş kalan saatleri listele ve rastgele testleri geç.
- İki metnin ortak sözcüklerini bulmak: Noktalama ve büyük harf farklarını yok sayarak iki metinde ortak geçen sözcükleri alfabetik sırayla döndüren fonksiyonu yaz.
- Kayıtları gruplar halinde üretmek: Uzun bir kayıt akışını belleği doldurmadan yüzerli gruplar halinde veren bir üreteç fonksiyonu yaz.
- Kapanıştaki sayaç hatasını düzeltmek: Döngüde oluşturulan geri çağırmaların hepsinin aynı değeri döndürdüğü hatayı ve eksik nonlocal bildirimini bul, düzelt ve testleri geçir.
- Telefon numaralarını tek biçime getirmek: Farklı yazılmış telefon numaralarını düzenli ifadeyle ayıklayıp '+90 5XX XXX XX XX' biçimine getiren fonksiyonu yaz.
- CSV'yi tür dönüşümüyle JSON'a aktarmak: Bulutsu Yazılım'ın lisans CSV'sini sayı, tarih ve mantıksal alanları doğru türe çevirerek JSON'a aktaran fonksiyonu yaz.
- Tarih dizisindeki boşlukları bulmak: Günlük yedekleme tarihleri listesinde eksik günleri ve en uzun kesintiyi bulan fonksiyonu yaz.
- Bozuk JSON satırlarını ayıklamak: Her satırı bir JSON nesnesi olan dosyada bozuk, eksik alanlı ve yanlış türlü satırları nedenleriyle ayırıp sağlam olanları işleyen fonksiyonu yaz.
- Sıralı listede ikili arama yazmak: Sıralı fiyat listesinde aranan değerin konumunu ya da ekleneceği yeri döndüren ikili aramayı kendin yaz.
- İç içe listeyi özyinelemeyle toplamak: Derinliği bilinmeyen iç içe sipariş listelerindeki tutarları özyinelemeyle toplayan fonksiyonu yaz.
- Klasör ağacını girintili yazdırmak: Bir klasör yapısını tree komutuna benzer girintili metne dönüştüren özyinelemeli fonksiyonu yaz; boş klasörleri de göster.
- Yavaş özyinelemeyi önbellek dekoratörüyle hızlandırmak: Merdiven çıkma yollarını sayan özyinelemeli fonksiyon için kendi önbellek dekoratörünü yaz; testler büyük girdilerde süre sınırını denetler.
- Sayfa başlıklarını toplamak: Lab web hedefindeki sayfaların HTML başlıklarını html.parser ile çekip URL ve başlık eşleşmelerini döndüren fonksiyonu yaz.
- HTML tablosunu kayıtlara çevirmek: Lab web hedefindeki fiyat tablosunu okuyup her satırı sözlüğe çeviren ve sayısal alanları dönüştüren fonksiyonu yaz.
- Sayfalı listeyi sonuna kadar dolaşmak: 'Sonraki' bağlantılarını izleyerek tüm ürün sayfalarını dolaşan, aynı sayfaya iki kez gitmeyen ve en fazla N istek atan fonksiyonu yaz.
- Eklenen ve silinen satırları bulmak: Bir ayar dosyasının iki sürümünü küme işlemleriyle karşılaştır; yalnızca eskide ve yalnızca yenide bulunan satırları dosyadaki özgün sırasıyla raporla.
- Benzer belgeleri ortak sözcük oranıyla eşleştirmek: Belgelerin sözcük kümeleri arasındaki Jaccard oranını hesapla ve her belgeyi eşiğin üzerindeki en benzer belgeyle eşleştir; boş belge ve eşit oran durumları testlerde denetlenir.
- Dosya satırlarını üreteçle vermek: Büyük bir dosyanın boş olmayan satırlarını kırpılmış olarak tek tek veren üreteç fonksiyonunu yaz; dosyanın tamamı belleğe alınmasın.
- Kayan pencere üreteci yazmak: Herhangi bir yinelenebilir üzerinde tek geçişte çalışan ve bellekte yalnızca pencere kadar öğe tutan kayan pencere üretecini yaz; testler bir kez tüketilebilen bir akış verir.
- Kapanışla sayaç üretmek: Her çağrıda bir artan ve kendi sayısını saklayan sayaç fonksiyonları üreten make_counter fonksiyonunu nonlocal kullanarak yaz; iki sayaç birbirini etkilemesin.
- Kapanışla aralık denetleyicileri kurmak: Alt ve üst sınırı hatırlayan denetleyici fonksiyonlar döndüren bir fabrika yaz; her denetleyici reddettiği değerlerin sayısını kendi içinde tutsun.
Kurs hakkında
Küçük, gerçek problemlerle pratik.
Ne öğreneceksin
- Dil temelleri
- Veri ve dosyalar
- Tasarım ve algoritma
- Bitirme
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.