Python öğrenmenin en güvenilir yolu, resmî Python Tutorial'ın izlediği sırayı takip edip her konuyu küçük, çalışan örneklerle pekiştirmektir: önce kurulum ve etkileşimli kabuk, sonra değişkenler, sayılar, metinler ve koşullar, ardından döngüler ve fonksiyonlar, veri yapıları, sınıflar, hatalar ve modüller, en sonda da standart kütüphane ve ileri konular. Bu sayfa, serideki 49 yazıyı tam bu öğrenme yoluna göre sekiz gruba ayırır ve her birinin size ne öğrettiğini tek cümleyle anlatır.

Serideki bütün bilgiler Python 3.15 belgelerine (docs.python.org) dayanır ve kod örneklerinin hepsi Python 3.15.2 ile çalıştırılarak denenmiştir. Python'un ne olduğunu, tarihçesini ve hangi alanlarda kullanıldığını merak ediyorsanız önce Python nedir yazısını okuyun; burada o konuları tekrar etmiyor, doğrudan dili öğrenmeye odaklanıyoruz.

Resmî belgeler nasıl okunur?

Resmî belgeler nasıl okunur? Tutorial, Built-in functions / Types, Library Reference, Language Reference

Python belgeleri birkaç ayrı kitaptan oluşur ve hangisinin ne için yazıldığını bilmek zaman kazandırır. Tutorial, dili gayriresmî bir dille tanıtan ve baştan sona okunması için tasarlanmış bölümdür. Belgenin kendi notuna göre bu metin programlamaya yeni başlayanlar için değil, Python'a yeni gelen programcılar için yazılmıştır. Yani daha önce hiç kod yazmadıysanız Tutorial bazı kavramları hızlı geçer; bu seride o boşlukları Türkçe açıklamalar ve ara adımlarla doldurmaya çalışıyoruz.

Built-in functions ve Built-in Types sayfaları, print(), len(), int, str, list, dict gibi her programda kullandığınız yapıların tam başvuru kaynağıdır. Bir metodun hangi parametreleri aldığını, neyi döndürdüğünü ya da hangi sürümde değiştiğini merak ettiğinizde ilk bakacağınız yer burasıdır. Library Reference (standart kütüphane) yüzlerce modülü tek tek belgeler; json, datetime, pathlib, re gibi modüllerin ayrıntıları oradadır. Language Reference ise dilin söz dizimini ve anlamını kesin bir dille tanımlar; okuması ağırdır ama "bu ifade tam olarak nasıl değerlendirilir?" sorusunun nihai cevabı oradadır.

Bunlara ek olarak HOWTO belgeleri belirli bir konuyu (sıralama, düzenli ifadeler, logging, Unicode, argparse gibi) derinlemesine anlatan uzun rehberlerdir. What's New sayfaları her sürümde nelerin eklendiğini, değiştiğini ve kaldırıldığını listeler. Bir kod parçası eski bir blog yazısında çalışıp sizde çalışmıyorsa, nedeni çoğu zaman bu sayfalardan birinde yazar.

BelgeNe içinNe zaman açılır
TutorialDili sırayla öğrenmekİlk haftalarda baştan sona
Built-in functions / TypesYerleşik fonksiyon ve tiplerin ayrıntısıBir metodun imzasını ya da dönüş değerini ararken
Library ReferenceStandart kütüphane modülleriBir işi hazır bir modülle yapmak istediğinizde
Language ReferenceSöz dizimi ve anlamın kesin tanımıDavranışın tam kuralını merak ettiğinizde
HOWTOKonu odaklı uzun rehberlerSıralama, regex, logging gibi konularda derinleşirken
What's NewSürüm değişiklikleriSürüm yükseltirken ya da eski kod çalışmadığında

Önerilen çalışma düzeni

Her konu için aynı döngüyü izlemenizi öneririz: önce ilgili yazıyı okuyun, sonra örnekleri etkileşimli kabukta ya da bir .py dosyasında kendiniz yazın, çıktının yazıdakiyle aynı olduğunu görün, ardından örneği bilerek bozun. Bir değeri değiştirin, bir satırı silin, yanlış tipte bir değer verin ve Python'un hangi hata mesajını gösterdiğine bakın. Python 3.15'in hata mesajları çoğu zaman "Did you mean ...?" şeklinde öneri de içerir; bu mesajları okumayı erken öğrenmek ileride çok zaman kazandırır.

Gruplar arasında katı bir sıra yoktur ama ilk üç grup (başlangıç, akış kontrolü ve veri yapıları) neredeyse her şeyin temelidir. Nesne yönelimli programlama ve hata yönetimi gruplarını bitirdiğinizde gerçek projeler yazmaya yetecek bilgiye sahip olursunuz. Standart kütüphane grubunu ihtiyaç duydukça açabilirsiniz; ileri seviye grup ise asenkron programlama, tip notları ve decorator gibi konuları, temel dil oturduktan sonra ele alır. Araçlar grubundaki sanal ortam ve test yazıları ise ilk projenizi başkalarıyla paylaşacağınız anda önem kazanır.

Kısa bir örnekle başlayalım. Aşağıdaki birkaç satır Tutorial'ın ilk bölümlerinde gördüğünüz yapıların (çoklu atama, while döngüsü, print() fonksiyonunun end parametresi) bir arada kullanımıdır ve 100'den küçük Fibonacci sayılarını yazar:

python
a, b = 0, 1
while a < 100:
    print(a, end=" ")
    a, b = b, a + b
print()
# çıktı: 0 1 1 2 3 5 8 13 21 34 55 89

Bu kodun her satırı serinin bir yazısına karşılık gelir: a, b = 0, 1 değişkenler ve tuple açma, while döngüler, a < 100 karşılaştırmalar ve koşullar, print(..., end=" ") ise fonksiyon çağrıları ve anahtar kelime argümanları konusudur. Aşağıdaki yolu izledikçe bu satırların her birini ayrıntısıyla anlayacaksınız.

1. Başlangıç

  • Python kurulumu ve ilk program: Windows'ta Python install manager ve py komutu, macOS ve Linux kurulumu, ilk .py dosyanızı yazıp çalıştırmayı gösterir.
  • Python etkileşimli kabuk (REPL): >>> ve ... istemleri, _ değişkeni, help(), renkli kabuk ve -i gibi komut satırı seçeneklerini anlatır.
  • Değişkenler ve veri tipleri: İsimlerin nesnelere nasıl bağlandığını, type(), id(), değiştirilebilir ve değiştirilemez tipler ile None kavramını açıklar.
  • Sayılar: int, float, decimal: Tam bölme, mod, üs alma, round() davranışı, 0.1 + 0.2 sorunu ve decimal ile fractions modüllerini işler.
  • String metotları: Metin dilimleme, split, join, strip, replace ve Türkçe büyük/küçük harf tuzaklarını örneklerle gösterir.
  • if, elif, else koşulları: Karşılaştırma zincirleri, and/or/not, doğruluk değeri ve tek satırlık koşullu ifadeyi anlatır.

2. Akış kontrolü ve fonksiyonlar

2. Akış kontrolü ve fonksiyonlar: for ve while döngüleri, Fonksiyon tanımlama (def), *args, **kwargs ve parametreler, lambda, map, filter, sorted

3. Veri yapıları

  • Liste metotları: append, extend, sort, dilimleme, kopyalama ve listeyi yığın ya da kuyruk olarak kullanmayı gösterir.
  • Tuple ve unpacking: Tuple yapısını, tek elemanlı tuple tuzağını ve yıldızlı atama ile değer açmayı anlatır.
  • Sözlük (dict) metotları: get, setdefault, update, | ile birleştirme ve Python 3.15 ile gelen frozendict tipini işler.
  • Set ve küme işlemleri: Birleşim, kesişim, fark işlemlerini ve bir değerin kümeye girebilmesi için gereken hashable kuralını açıklar.
  • List comprehension: Liste, sözlük ve küme üreteçlerini, generator ifadelerini ve iç içe kullanımı öğretir.
  • collections: Counter, defaultdict, deque: Standart kütüphanedeki özel kap tiplerinin hangi sorunu çözdüğünü örneklerle gösterir.

4. Nesne yönelimli programlama

  • Class ve nesne: class, __init__, self, örnek ve sınıf değişkenleri ile classmethod/staticmethod farkını anlatır.
  • Kalıtım, super() ve MRO: Tekli ve çoklu kalıtımı, super() çağrısını ve metot çözümleme sırasını açıklar.
  • Özel (dunder) metotlar: __repr__, __eq__, __len__ gibi metotlarla sınıflarınızı yerleşik tipler gibi davrandırmayı öğretir.
  • property ve descriptor: @property ile denetimli nitelikleri, descriptor protokolünü ve __slots__ kullanımını işler.
  • dataclasses: @dataclass ile veri sınıflarını, field, frozen, order ve __post_init__ seçeneklerini gösterir.
  • Enum kullanımı: Enum, IntEnum, StrEnum, Flag ve auto() ile sabit değer kümeleri tanımlamayı anlatır.

5. Hatalar, modüller ve dosyalar

6. Standart kütüphane

6. Standart kütüphane: json modülü, datetime ile tarih ve saat, re modülü, csv modülü
  • json modülü: JSON okuma ve yazmayı, ensure_ascii ile Türkçe karakterleri ve özel tiplerin dönüştürülmesini anlatır.
  • datetime ile tarih ve saat: Tarih aritmetiğini, strftime/strptime biçimlerini ve saat dilimlerini işler.
  • re modülü: Python'un re modülündeki arama, eşleştirme, gruplama ve değiştirme fonksiyonlarını gösterir.
  • csv modülü: CSV dosyalarını okuyup yazmayı, DictReader ve noktalı virgülle ayrılmış Türkçe Excel dosyalarını anlatır.
  • sqlite3 ile veritabanı: Bağlantı kurmayı, parametreli sorgularla güvenli veri eklemeyi ve row_factory kullanımını açıklar.
  • itertools ve functools: chain, groupby, batched, partial ve lru_cache gibi araçları örneklerle öğretir.

7. İleri seviye

  • Generator, yield ve iterator: Yineleyici protokolünü, yield ile tembel veri üretmeyi ve yield from yapısını anlatır.
  • Decorator yazma: Fonksiyonu saran fonksiyon mantığını, functools.wraps ve argüman alan decorator yazmayı gösterir.
  • Type hints ve typing: Tip notlarını, X | None söz dizimini, TypedDict, Protocol ve generic tanımları açıklar.
  • asyncio, async ve await: Eş zamanlı olmayan programlamayı, gather, TaskGroup ve zaman aşımı yönetimini işler.
  • threading ve multiprocessing: İş parçacıkları, süreçler, concurrent.futures ve GIL ile free-threaded yapıyı karşılaştırır.
  • logging modülü: Log seviyelerini, logger, handler ve formatter yapısını ve dosyaya log yazmayı öğretir.

8. Araçlar, sürüm ve sık hatalar

  • argparse ile komut satırı: Konumsal ve isteğe bağlı argümanlarla, alt komutlarla kullanışlı komut satırı araçları yazmayı gösterir.
  • unittest ile test yazma: TestCase, assert metotları, setUp ve python -m unittest ile testleri çalıştırmayı anlatır.
  • venv ve pip: Proje başına sanal ortam kurmayı, paket yüklemeyi ve bağımlılık listesi tutmayı açıklar.
  • Python 3.15 yenilikleri: Lazy import, frozendict, sentinel, varsayılan UTF-8 ve kaldırılan özellikleri tek yerde toplar.
  • Unicode, UTF-8 ve Türkçe karakterler: str ile bytes farkını, encode/decode hatalarını ve Türkçe İ/ı sorunlarını işler.
  • Sık görülen hata mesajları: SyntaxError, NameError, TypeError, KeyError gibi hataların ne anlama geldiğini ve nasıl çözüleceğini anlatır.

Öğrenirken sık yapılan hatalar

Eski sürüm içeriğine güvenmek. İnternette bulduğunuz pek çok örnek Python 2 ya da eski Python 3 sürümleri için yazılmıştır. print "merhaba" gibi parantezsiz bir çağrı Python 3'te söz dizimi hatasıdır. Bir örnek beklediğiniz gibi çalışmıyorsa önce hangi sürüm için yazıldığına, sonra ilgili What's New sayfasına bakın.

Kodu yazmadan okumak. Python'un kuralları okuyarak değil, denenerek oturur. Etkileşimli kabuk bunun için vardır: bir ifadenin sonucunu merak ettiğinizde tahmin etmek yerine yazıp bakın. REPL yazısı bu alışkanlığı nasıl kuracağınızı anlatır.

Hata mesajını okumadan aramak. Bir hata aldığınızda en alttaki satır hatanın türünü ve nedenini, üstündeki satırlar ise nerede oluştuğunu söyler. Mesajı kopyalayıp aramadan önce okumak, çoğu durumda çözümü doğrudan gösterir. Sık hata mesajları yazısı en yaygın mesajları tek tek açıklar.

Global kuruluma paket yüklemek. Her projeye ayrı bir sanal ortam açmak, sürüm çakışmalarını baştan önler. Python'un Windows belgeleri de her proje için bir sanal ortam oluşturmayı önerir; ayrıntılar venv yazısında.

Sık Sorulan Sorular

Python öğrenmeye nereden başlamalıyım?

Önce kurulum yazısıyla bilgisayarınıza Python'u kurun, ardından etkileşimli kabuğu açıp bu sayfadaki başlangıç grubunu sırayla okuyun. Resmî Tutorial'ın ikinci ve üçüncü bölümleri aynı konuları İngilizce olarak anlatır; iki kaynağı birlikte kullanmak iyi sonuç verir.

Hangi Python sürümünü kullanmalıyım?

Yeni bir projeye başlıyorsanız desteklenen en güncel kararlı sürümü seçin; bu seri Python 3.15 belgelerine göre yazıldı. Bir sürümde neyin değiştiğini Python 3.15 yenilikleri yazısında ve resmî What's New sayfalarında bulabilirsiniz.

Resmî Tutorial bitince ne okumalıyım?

Tutorial'ın "What Now?" bölümü sonraki adım olarak Built-in Types, standart kütüphane ve Language Reference belgelerini önerir. Pratikte en verimli yol, standart kütüphaneden ihtiyaç duyduğunuz modülleri seçip (dosya, JSON, tarih gibi) küçük projelerde kullanmaktır. Bu serinin altıncı ve yedinci grupları bu geçişi kolaylaştırmak için yazıldı.

Üçüncü parti kütüphaneleri ne zaman öğrenmeliyim?

Dilin çekirdeğini ve standart kütüphanenin temel modüllerini öğrendikten sonra. Django, FastAPI ya da discord.py gibi araçların hepsi bu temellerin üzerine kuruludur. Bu araçlarla uygulama yayına almak isterseniz Django, FastAPI ve discord.py yazılarına bakabilirsiniz.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: Python nedir · Python kurulumu · Python REPL · Sık hata mesajları · Python 3.15 yenilikleri