Python temelleri
Değişkenler, türler, koşullar ve döngüler.
Seviye 101 · 23 ders · 24 pratik lab
Dersler
Başlangıç
- Python'u çalıştırmak: yorumlayıcı ve betik: Python'u etkileşimli yorumlayıcıda ve dosyadan betik olarak çalıştırmayı, çıktıyı görmeyi öğrenirsin.
- Python için kod düzenleyici kurmak: VS Code: VS Code’u kurup Python için ayarlar, betiğini düzenleyiciden çalıştırır ve hata satırına hızlıca gidersin.
- Tanımlayıcılar ve ayrılmış sözcükler: Değişken ve işlev adlarının kurallarını, Python’un kendine ayırdığı sözcükleri ve çakışmaları nasıl önleyeceğini öğrenirsin.
- Değişkenler ve türler: Değişkenlerin veriyi nasıl sakladığını ve sayı, metin, doğru/yanlış gibi temel türleri ayırt etmeyi öğrenirsin.
- Sayılar, işleçler ve öncelik: Python'da hesap yapmayı, işleçlerin hangi sırayla çalıştığını ve sonucu nasıl öngöreceğini anlarsın.
- Dizgiler: dizin, dilim, yöntemler, biçimlendirme: Metinlerin bir parçasını almayı, değiştirmeyi ve yeni metinlerde biçimlendirmeyi öğrenirsin.
- Metin kodlaması: Unicode, UTF-8 ve bayt: Metnin bilgisayarda bayt olarak nasıl saklandığını anlar, bozuk karakter hatalarını encode ve decode ile çözebilirsin.
- Girdi, çıktı, yorumlar ve adlandırma kuralları (PEP 8): Kullanıcıdan veri almayı, sonuç yazdırmayı ve okunaklı kod için yorum ile adlandırma kurallarını uygulamayı öğrenirsin.
- Kısa görev: kasa fişi hesaplayan betik
Akış ve fonksiyonlar
- Koşullar: if, elif, else ve match-case: Programın bir duruma göre farklı yollar seçmesini if, elif, else ve match-case ile yazarsın.
- Döngüler: for, while, break ve continue: Bir işi tekrar tekrar yapan döngüleri yazar, break ve continue ile döngünün akışını yönetirsin.
- Hazır işlevler: len, range, sorted, zip, enumerate: Python’la gelen hazır işlevleri tanır, döngü ve veri işleme kodunu bunlarla kısaltabilirsin.
- Fonksiyonlar: parametre, dönüş değeri, kapsam: Tekrarlanan işi isimli bir fonksiyona koymayı, ona veri verip sonuç almayı ve değişkenlerin nerede geçerli olduğunu anlarsın.
- Esnek parametreler: varsayılan değer, *args ve **kwargs: Bir işlevin kaç argüman alacağını önceden bilmeden yazabilir, varsayılan değer tuzaklarından kaçınabilirsin.
- Lambda ifadeleri ve map, filter, sorted anahtarı: Tek satırlık isimsiz işlevler yazar, listeleri bunlarla süzer, dönüştürür ve özel ölçüte göre sıralarsın.
- Belge dizgileri ve tür ipuçları: İşlevlerini docstring ile belgeler, parametre ve dönüş türlerini yazarak kodunu başkaları için okunur kılarsın.
- Betik giriş noktası: main işlevi ve __name__ denetimi: Dosyanın hem doğrudan çalıştırılıp hem de içe aktarılabilmesini sağlayan standart yapıyı kurarsın.
- Kısa görev: parola kurallarını denetleyen fonksiyon
Sağlam kod
- Hatalar, izleme ve günlükleme: Hata mesajını ve izini okuyup sorunun yerini bulur, programın ne yaptığını günlüğe (log) yazmayı öğrenirsin.
- Dosya okumak ve yazmak: Bir dosyayı açıp satır satır okumayı ve yeni bilgi yazmayı güvenli biçimde yapabilirsin.
- Modüller ve içe aktarma: Hazır modülleri programına nasıl dahil edeceğini ve kendi kodunu dosyalara bölmeyi öğrenirsin.
- Kısa görev: betiği modüllere böl ve hatalara dayanıklı yap
Bitirme
- Bitirme görevi: log satırı sayacı yaz: Kurgusal bir şirketin günlük (log) dosyasını okuyup belirli satırları sayan küçük bir Python betiği yazarsın.
Pratik lablar
- Hatalı girişte yeniden sormak: Yaş bilgisini soran fonksiyonu, sayı olmayan ya da aralık dışı girişte en çok üç kez yeniden soracak ve sonra varsayılanı döndürecek şekilde yaz.
- Plakadan il kodunu ayırmak: Dilimleme ve split ile '34 ABC 123' biçimindeki plakalardan il kodunu, harf ve sayı bölümlerini ayıran fonksiyonu yaz.
- Yaka kartı için ad biçimlendirmek: Gelişigüzel yazılmış ad ve soyadları baş harfi büyük ad ve tamamı büyük soyad olacak şekilde biçimlendiren fonksiyonu yaz.
- Fatura numaralarını sıfırla doldurmak: Defne Finans'ın fatura numaralarını 'FTR-000042' biçimine getiren ve f-string hizalamasıyla rapor satırı üreten fonksiyonları tamamla.
- Kart numarasını maskeleyerek göstermek: Boşluk ve tire içerebilen kart numaralarını temizleyip yalnızca son dört haneyi gösteren fonksiyonu yaz; hatalı uzunlukları reddet ve rastgele girdili testleri geçir.
- Hesabı kişi başına bölmek: Tutarı, bahşiş oranını ve kişi sayısını alıp kişi başı payı iki ondalık basamakla döndüren fonksiyonu yaz.
- Saniyeyi saat ve dakikaya çevirmek: // ve % işleçleriyle saniye cinsinden süreyi 'S:DD:SS' biçimine çeviren fonksiyonu yaz ve sınır değerleri içeren testleri geçir.
- Kuruş hatasını düzeltmek: Kayan noktalı toplama yüzünden bir kuruş eksik çıkan kasa toplamını tamsayı kuruş ya da Decimal kullanarak düzelt ve rastgele tutarlarla testleri geçir.
- Kargo ücretini ağırlığa göre hesaplamak: Sarıkız Kargo'nun ağırlık dilimlerine göre ücret döndüren fonksiyonu if-elif ile yaz ve dilim sınırlarındaki testleri geçir.
- Durum kodlarını match-case ile sınıflamak: HTTP durum kodlarını match-case kalıplarıyla başarılı, yönlendirme, istemci hatası ve sunucu hatası gruplarına ayıran fonksiyonu yaz.
- Yeniden deneme döngüsünü sınırlamak: Bazen sonsuza dek dönen bir yeniden deneme döngüsünü deneme sayacı, break ve for-else ile düzelt; hata durumlarını da kapsayan testleri geçir.
- Varsayılan parametreyle karşılama mesajı üretmek: Dil ve selamlama biçimi için varsayılan değer alan bir karşılama fonksiyonu yaz ve konumsal ile adlandırılmış çağrıları deneyen testleri geçir.
- Ürünleri lambda anahtarıyla sıralamak: Ürün sözlüklerini önce stok durumuna, sonra fiyata göre sorted ve lambda anahtarıyla sıralayan fonksiyonu yaz.
- Değişken varsayılan argüman hatasını bulmak: Her çağrıda önceki sonuçları biriktiren fonksiyondaki liste varsayılanı hatasını bul, düzelt ve hatayı yakalayan bir test ekle.
- Metnin bayt uzunluğunu ölçmek: Türkçe karakter içeren mesajların karakter ve UTF-8 bayt uzunluklarını karşılaştırıp 160 baytı aşanları işaretleyen fonksiyonu yaz.
- Eski kodlamalı dosyayı okumak: cp1254 ile kaydedilmiş müşteri listesini doğru çözüp UTF-8 olarak yeniden yazan betiği tamamla ve bozuk bayt içeren satırları raporla.
- UTF-8 metni bayt sınırında kesmek: Metni hiçbir karakteri ortadan bölmeden en fazla N bayta kısaltan fonksiyonu yaz ve rastgele çok baytlı girdilerle testleri geçir.
- Eksik dosyada varsayılana dönmek: Ayar dosyası yoksa ya da okunamıyorsa varsayılan değerleri döndüren ve hatayı logging ile kaydeden fonksiyonu yaz.
- Bozuk satırları atlayarak toplamak: Sayı listesi dosyasında sayıya çevrilemeyen satırları satır numarasıyla uyarı vererek atlayan ve kalanları toplayan fonksiyonu yaz.
- İçe aktarınca çalışan kodu durdurmak: İçe aktarıldığında dosya silen bir yardımcı modülü __name__ denetimi ve main fonksiyonuyla düzelt; içe aktarmanın yan etkisiz olduğunu doğrulayan testi geçir.
- Sayaç dosyasını güvenle güncellemek: Ziyaret sayacını dosyada tutan betiği with bloğu, istisna yakalama ve bozuk içerik denetimiyle sağlamlaştır; boş, bozuk ve eksik dosya testlerini geçir.
- Yazılan tarihi birkaç biçimde kabul etmek: Kullanıcının yazdığı tarihi üç farklı biçimde kabul eden, geçersiz gün ve ayı reddeden ve anlaşılır bir iletiyle yeniden soran fonksiyonu yaz; boş girişte işlem iptal edilsin.
- Betiği main fonksiyonuna toplamak: Dosyanın en üst düzeyine dağılmış satırları bir main() fonksiyonuna taşı ve betik doğrudan çalıştırıldığında aynı çıktıyı verdiğini testle göster.
- main fonksiyonundan çıkış kodu döndürmek: main(argv) fonksiyonunu argüman listesini parametre olarak alacak ve başarıda 0, hatalı kullanımda 2 döndürecek şekilde düzenle; giriş noktası bu değeri sys.exit ile iletsin.
Kurs hakkında
Değişkenler, türler, koşullar ve döngüler.
Ne öğreneceksin
- Başlangıç
- Akış ve fonksiyonlar
- Sağlam kod
- Bitirme
Ön koşullar
Ön bilgi gerekmez; kurs sıfırdan başlar.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs başlangıç düzeyindedir; her terim ilk geçtiği yerde açıklanı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.