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?

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.
| Belge | Ne için | Ne zaman açılır |
|---|---|---|
| Tutorial | Dili sırayla öğrenmek | İlk haftalarda baştan sona |
| Built-in functions / Types | Yerleşik fonksiyon ve tiplerin ayrıntısı | Bir metodun imzasını ya da dönüş değerini ararken |
| Library Reference | Standart kütüphane modülleri | Bir işi hazır bir modülle yapmak istediğinizde |
| Language Reference | Söz dizimi ve anlamın kesin tanımı | Davranışın tam kuralını merak ettiğinizde |
| HOWTO | Konu odaklı uzun rehberler | Sıralama, regex, logging gibi konularda derinleşirken |
| What's New | Sürüm değişiklikleri | Sü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:
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 89Bu 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
pykomutu, macOS ve Linux kurulumu, ilk.pydosyanızı yazıp çalıştırmayı gösterir. - Python etkileşimli kabuk (REPL):
>>>ve...istemleri,_değişkeni,help(), renkli kabuk ve-igibi 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 ileNonekavramını açıklar. - Sayılar: int, float, decimal: Tam bölme, mod, üs alma,
round()davranışı, 0.1 + 0.2 sorunu vedecimalilefractionsmodüllerini işler. - String metotları: Metin dilimleme,
split,join,strip,replaceve 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

- for ve while döngüleri:
range,enumerate,zip,break/continueve döngülerin az bilinenelsebloğunu öğretir. - Fonksiyon tanımlama (def):
def,return, docstring ve değiştirilebilir varsayılan değer tuzağını ele alır. - *args, **kwargs ve parametreler: Değişken sayıda argüman,
/ve*ile konumsal ya da anahtar kelime zorunlu parametreleri açıklar. - lambda, map, filter, sorted: Anonim fonksiyonları,
keyile sıralamayı veoperatormodülünü gösterir. - Kapsam: global ve nonlocal: LEGB kuralını, closure yapısını ve
UnboundLocalErrorhatasının nedenini anlatır. - match/case desen eşleştirme: Yapısal desen eşleştirmenin desen türlerini, guard koşullarını ve sınıf desenlerini işler.
- f-string ile biçimlendirme: Biçim belirtimi mini dilini,
str.format()yöntemini,=ile hata ayıklamayı ve 3.14'te gelen t-string yapısını açıklar.
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 gelenfrozendicttipini 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 ileclassmethod/staticmethodfarkı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:
@propertyile denetimli nitelikleri, descriptor protokolünü ve__slots__kullanımını işler. - dataclasses:
@dataclassile veri sınıflarını,field,frozen,orderve__post_init__seçeneklerini gösterir. - Enum kullanımı:
Enum,IntEnum,StrEnum,Flagveauto()ile sabit değer kümeleri tanımlamayı anlatır.
5. Hatalar, modüller ve dosyalar
- try/except ile hata yönetimi:
try,except,else,finallybloklarını ve birden çok istisnayı yakalamayı açıklar. - raise ve özel istisnalar: Kendi istisna sınıflarınızı yazmayı,
raise from,add_noteveexcept*yapısını öğretir. - Modül, paket ve import: İçe aktarma çeşitlerini,
__name__ == "__main__"kalıbını vesys.pathmantığını anlatır. - Dosya okuma ve yazma (open):
open()modlarını, kodlama seçimini ve 3.15'te varsayılan hâle gelen UTF-8 davranışını işler. - pathlib ile dosya yolları:
Pathnesnesi,/operatörü,globveos.pathkarşılıklarını gösterir. - with ve context manager:
withbloğunun nasıl çalıştığını vecontextlibile kendi bağlam yöneticinizi yazmayı açıklar.
6. Standart kütüphane

- json modülü: JSON okuma ve yazmayı,
ensure_asciiile Türkçe karakterleri ve özel tiplerin dönüştürülmesini anlatır. - datetime ile tarih ve saat: Tarih aritmetiğini,
strftime/strptimebiçimlerini ve saat dilimlerini işler. - re modülü: Python'un
remodülündeki arama, eşleştirme, gruplama ve değiştirme fonksiyonlarını gösterir. - csv modülü: CSV dosyalarını okuyup yazmayı,
DictReaderve 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_factorykullanımını açıklar. - itertools ve functools:
chain,groupby,batched,partialvelru_cachegibi araçları örneklerle öğretir.
7. İleri seviye
- Generator, yield ve iterator: Yineleyici protokolünü,
yieldile tembel veri üretmeyi veyield fromyapısını anlatır. - Decorator yazma: Fonksiyonu saran fonksiyon mantığını,
functools.wrapsve argüman alan decorator yazmayı gösterir. - Type hints ve typing: Tip notlarını,
X | Nonesöz dizimini,TypedDict,Protocolve generic tanımları açıklar. - asyncio, async ve await: Eş zamanlı olmayan programlamayı,
gather,TaskGroupve zaman aşımı yönetimini işler. - threading ve multiprocessing: İş parçacıkları, süreçler,
concurrent.futuresve 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ı,setUpvepython -m unittestile 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:
strilebytesfarkını, encode/decode hatalarını ve Türkçe İ/ı sorunlarını işler. - Sık görülen hata mesajları:
SyntaxError,NameError,TypeError,KeyErrorgibi 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