Python Nedir? Tarihçesi ve Felsefesi
Programlama dünyasına adım atıyorsun ve muhtemelen "hangi dille başlamalıyım?" sorusuyla karşılaştın. Cevap neredeyse her zaman aynı: Python. Ama neden? Bu derste Python'ın ne olduğunu, nereden geldiğini, neden bu kadar popüler olduğunu ve hangi alanlarda kullanıldığını keşfedeceğiz.
Hazırsan başlayalım. Çünkü Python'ı tanıdıktan sonra, onunla neler yapabileceğini gördüğünde gözlerin parlayacak.
Python'ın Doğuş Hikayesi
Kim Yarattı?
Python'ı Guido van Rossum adında Hollandalı bir programcı yarattı. Guido, 1989 yılının Noel tatilinde (evet, tatilde!) bir hobi projesi olarak Python üzerinde çalışmaya başladı. İlk sürüm olan Python 0.9.0, 1991 yılında yayınlandı.
Guido, o dönemde ABC adlı bir programlama dilinde çalışıyordu. ABC'nin bazı fikirlerini seviyordu ama dilin bazı kısıtlamalarından rahatsızdı. "Ben daha iyi bir şey yapabilirim" dedi ve Python'ı yarattı.
İsim Nereden Geliyor?
Python'ın ismi bir yılandan gelmiyor! Guido, İngiliz komedi grubu Monty Python's Flying Circus'ın büyük bir hayranıydı. Dili eğlenceli ve erişilebilir tutmak istiyordu — tıpkı bu komedi programı gibi. Bu yüzden diline Python adını verdi.
Bu isim seçimi aslında Python'ın ruhunu da yansıtıyor: ciddi işler yapabilen ama aynı zamanda öğrenmesi ve kullanması keyifli bir dil.
Zaman Çizelgesi
Python'ın kısa tarihi şöyle:
1991 — Python 0.9.0 yayınlandı
1994 — Python 1.0 çıktı
2000 — Python 2.0: list comprehension, garbage collection
2008 — Python 3.0: büyük değişiklikler, geriye uyumsuz
2020 — Python 2 resmi olarak emekliye ayrıldı
Günümüz — Python 3.12+ aktif olarak geliştirilmeye devam ediyor
🐍 Python topluluğunda Guido van Rossum'a "BDFL" (Benevolent Dictator For Life — Hayırsever Yaşam Boyu Diktatör) denir. 2018'de bu unvanından istifa etti ama Python üzerindeki etkisi hâlâ devam ediyor.
Python Felsefesi: The Zen of Python
Python'ın bir felsefesi var. Evet, bir programlama dilinin felsefesi! Bunu görmek için Python'ı açıp şunu yazman yeterli:
import thisBu komut sana The Zen of Python (Python'ın Zen'i) adlı bir metin gösterecek. İşte en önemli birkaç madde:
Beautiful is better than ugly.
(Güzel, çirkinden iyidir.)
Explicit is better than implicit.
(Açık olmak, örtük olmaktan iyidir.)
Simple is better than complex.
(Basit, karmaşıktan iyidir.)
Readability counts.
(Okunabilirlik önemlidir.)
There should be one-- and preferably only one --obvious way to do it.
(Bir şeyi yapmanın bir — tercihen tek bir — bariz yolu olmalıdır.)Bu Ne Anlama Geliyor?
Python, okunabilirliği her şeyin üstünde tutar. Bir kod yazıyorsan, o kodu 6 ay sonra tekrar okuduğunda — ya da başka bir geliştirici okuduğunda — anlaşılır olmalı.
Bunu bir analoji ile düşün: Python, bir IKEA mobilya montaj kılavuzu gibidir. Her adım açık, sıralı ve görsel olarak anlaşılır. Bazı diller ise montaj kılavuzu olmadan kutudan çıkan 200 parçalı mobilya gibidir — yapabilirsin ama çok acı çekersin.
# Python: Okunabilir ve açık
isim = "Ayşe"
yas = 25
if yas >= 18:
print(f"{isim} yetişkin.")Gördüğün gibi, Python kodunu okumak neredeyse İngilizce okumak gibi. if yas >= 18 — "eğer yaş 18'den büyük veya eşitse" demek. Başka bir dil bilmesen bile bu kodu anlayabilirsin.
Pythonic Kod
Python topluluğunda "Pythonic" diye bir kavram var. Bir kodu yazmanın birçok yolu olabilir ama bunlardan biri daha "Pythonic"tir — yani Python'ın felsefesine daha uygun, daha temiz ve daha okunabilir olan yoldur.
# Pythonic olmayan yol
sayilar = [1, 2, 3, 4, 5]
kareler = []
for sayi in sayilar:
kareler.append(sayi ** 2)
# Pythonic yol
sayilar = [1, 2, 3, 4, 5]
kareler = [sayi ** 2 for sayi in sayilar]İkinci yol daha kısa ve daha "Pythonic". Ama acele etme — bu konulara ilerleyen derslerde detaylıca gireceğiz.
Python Nerelerde Kullanılır?
Python'ın en güzel yanlarından biri çok yönlü (versatile) olması. Tek bir dil öğrenip birçok farklı alanda kullanabilirsin.
🌐 Web Geliştirme (Web Development)
Python ile web sitesi ve web uygulaması yapabilirsin. Django ve Flask gibi framework'ler bu işi kolaylaştırır.
Instagram, Pinterest, Spotify ve Dropbox gibi devasa uygulamalar Python ile yazılmıştır. Evet, her gün kullandığın uygulamaların arkasında Python çalışıyor olabilir.
# Flask ile basit bir web uygulaması
from flask import Flask
app = Flask(__name__)
@app.route("/")
def merhaba():
return "Merhaba Dünya! Bu benim ilk web uygulamam."
if __name__ == "__main__":
app.run()📊 Veri Bilimi (Data Science)
Bugün en çok konuşulan alanlardan biri veri bilimi ve Python bu alanın tartışmasız kralı. pandas, NumPy, matplotlib gibi kütüphaneler veriyi analiz etmeni, görselleştirmeni ve anlamlandırmanı sağlar.
Bir şirketin satış verilerini analiz etmek, grafik oluşturmak, trendleri bulmak — bunların hepsi Python ile birkaç satır kodla yapılabiliyor.
# Basit veri analizi örneği
import pandas as pd
veriler = {"isim": ["Ali", "Ayşe", "Can"], "puan": [85, 92, 78]}
df = pd.DataFrame(veriler)
ortalama = df["puan"].mean()
print(f"Ortalama puan: {ortalama}")🤖 Yapay Zeka ve Makine Öğrenmesi (AI & ML)
ChatGPT, görüntü tanıma, öneri sistemleri... Yapay zeka denildiğinde akla ilk gelen dil Python'dır. TensorFlow, PyTorch, scikit-learn gibi kütüphaneler Python ile çalışır.
Makine öğrenmesinin temelinde "veriden öğrenme" vardır. Python, bu veriyi işlemek ve modellemek için en uygun araçları sunar.
🔧 Otomasyon ve Scripting
Bilgisayarda tekrarlayan bir iş mi yapıyorsun? Python ile otomatikleştirebilirsin. Dosya adlarını toplu değiştirmek, Excel tablolarını birleştirmek, e-posta göndermek, web'den veri çekmek (web scraping)... Hepsi Python ile mümkün.
# Dosya isimlerini toplu değiştirme örneği
import os
klasor = "./fotograflar"
for i, dosya in enumerate(os.listdir(klasor)):
eski_yol = os.path.join(klasor, dosya)
yeni_ad = f"foto_{i+1}.jpg"
yeni_yol = os.path.join(klasor, yeni_ad)
os.rename(eski_yol, yeni_yol)
print(f"{dosya} -> {yeni_ad}")🎮 Oyun Geliştirme
Python, AAA oyunlar için ideal değildir ama küçük oyunlar ve prototipler için harika. Pygame kütüphanesi ile 2D oyunlar yapabilirsin. Ayrıca büyük oyun stüdyoları araç (tool) geliştirmek için Python kullanır.
🔬 Bilimsel Hesaplama
Fizik, kimya, biyoloji, matematik... Bilim insanları Python'ı araştırmalarında yoğun olarak kullanıyor. NASA bile Python kullanıyor!
📱 Diğer Alanlar
DevOps ve sistem yönetimi: Sunucu otomasyonu, CI/CD pipeline'ları
IoT (Nesnelerin İnterneti): Raspberry Pi ile sensör okuma
Finans: Algoritmik ticaret, risk analizi
Eğitim: Programlama öğretiminde en çok tercih edilen dil
Python 2 vs Python 3
Bu konuyu kısa tutacağız çünkü günümüzde sadece Python 3 kullanılmalı. Ama geçmişi bilmek önemli.
Neden İki Versiyon Var?
2008'de Python 3.0 yayınlandığında, Python 2 ile geriye uyumlu değildi. Yani Python 2 için yazılmış kodlar Python 3'te çalışmayabiliyordu. Bu durum topluluğu ikiye böldü.
Yıllarca iki versiyon paralel olarak geliştirildi. Ama 1 Ocak 2020 itibarıyla Python 2 resmi olarak emekliye ayrıldı. Artık güvenlik güncellemesi bile almıyor.
Temel Farklar (Kültürel Bilgi)
# Python 2
print "Merhaba" # parantez yok
sayi = raw_input() # input yerine raw_input
# Python 3
print("Merhaba") # parantez zorunlu
sayi = input() # raw_input kaldırıldı⚠️ Dikkat: İnternette Python kodları ararken bazen Python 2 kodlarıyla karşılaşabilirsin.
raw_inputgörüyorsan, o kod Python 2 içindir. Python 3 karşılığını kullan.
Hangisini Kullanmalıyım?
Her zaman Python 3. Nokta. Tartışmaya bile gerek yok. Python 2 tarih oldu.
Bu kursta biz de tamamen Python 3 kullanacağız (Python 3.10+ önerilir).
Neden Python Bu Kadar Popüler?
Python, yıllar içinde dünyanın en popüler programlama dillerinden biri haline geldi. TIOBE, Stack Overflow ve GitHub gibi platformların istatistiklerinde sürekli en üst sıralarda. Peki neden?
1. Öğrenmesi Kolay
Python'ın söz dizimi (syntax) temiz ve sade. Süslü parantezler ({}) veya noktalı virgüller (;) ile uğraşmana gerek yok. Kod yazarken "bu satırın sonuna ne koyacaktım?" diye düşünmezsin.
# C dilinde
# if (yas >= 18) {
# printf("Yetişkin\n");
# }
# Python'da
if yas >= 18:
print("Yetişkin")Gördüğün gibi, Python versiyonu çok daha temiz ve okunabilir.
2. Devasa Topluluk (Community)
Bir hata aldığında Google'a yaz — büyük ihtimalle Stack Overflow'da birisi aynı hatayı daha önce sormuş ve cevaplamış. Python topluluğu dünya genelinde milyonlarca geliştiriciyi kapsıyor.
Bu topluluğun pratik anlamı şu: Takıldığında yalnız değilsin. Forumlar, Discord sunucuları, YouTube kanalları, bloglar... Her yerde yardım bulabilirsin.
3. Zengin Kütüphane Ekosistemi
Python'ın PyPI (Python Package Index) deposunda 400.000'den fazla paket bulunuyor. Ne yapmak istersen iste, muhtemelen birisi zaten bir kütüphane yazmış.
Web uygulaması mı? →
Django,FlaskVeri analizi mi? →
pandas,numpyGrafik mi? →
matplotlib,seabornAPI çağrısı mı? →
requestsWeb scraping mi? →
beautifulsoup4,scrapyTest mi? →
pytest
Bu kütüphaneleri kurmak da tek bir komut:
# Terminal'de
# pip install requests
import requests
response = requests.get("https://api.github.com")
print(response.status_code) # 200
print(response.json()) # API yanıtı4. Çok Yönlülük
Az önce gördüğümüz gibi, Python'ı web'den yapay zekaya, otomasyondan bilimsel hesaplamaya kadar her alanda kullanabilirsin. Tek bir dil öğrenip birçok kapı açabilirsin.
5. İş Piyasasında Talep
Python bilen geliştiricilere talep çok yüksek. Özellikle veri bilimi, yapay zeka ve backend geliştirme alanlarında Python bilmek büyük avantaj.
6. Okunabilirlik
Python, kodu yazar gibi değil, okur gibi düşünür. Bu, ekip çalışmasında muazzam bir avantaj. Başkasının yazdığı kodu okuyup anlamak, birçok dilde acı verici olabilir. Python'da ise doğal bir şekilde akar.
Interpreted vs Compiled: Ne Fark Eder?
Programlama dillerini anlamak için önce bilgisayarın nasıl çalıştığını basitçe bilmen gerekiyor.
Bilgisayar Neyi Anlar?
Bilgisayar sadece 0 ve 1 anlar. Evet, o kadar. Senin yazdığın print("Merhaba") komutu bilgisayar için bir anlam ifade etmiyor — ta ki çevrilene kadar.
İşte bu çeviri işlemini yapan iki farklı yaklaşım var: derleme (compilation) ve yorumlama (interpretation).
Compiled (Derlenmiş) Diller
C, C++, Go, Rust gibi dillerde yazdığın kodu önce bir derleyici (compiler) alır ve tamamını makine diline (0 ve 1) çevirir. Sonuç olarak bir çalıştırılabilir dosya (.exe gibi) elde edersin. Bu dosyayı doğrudan çalıştırırsın.
Analoji: Bir kitabı baştan sona çevirip bastırmak gibi. Çeviri süreci zaman alır ama bir kere basıldığında çok hızlı okunur.
Interpreted (Yorumlanmış) Diller
Python, JavaScript, Ruby gibi dillerde ise kod satır satır yorumlanır. Bir yorumlayıcı (interpreter) kodunu alır, her satırı teker teker çevirip çalıştırır.
Analoji: Bir toplantıda simultane tercüman kullanmak gibi. Konuşmacı bir cümle söyler, tercüman anında çevirir. Biraz daha yavaş olabilir ama anlık geri bildirim alırsın.
# Python bu kodu satır satır yorumlar
print("Birinci satır") # Önce bu çalışır
print("İkinci satır") # Sonra bu çalışır
print("Üçüncü satır") # En son bu çalışırPratik Farklar
| Özellik | Compiled | Interpreted |
|---|---|---|
| Hız | Genellikle daha hızlı | Genellikle daha yavaş |
| Geliştirme hızı | Daha yavaş (derleme adımı) | Daha hızlı (hemen çalıştır) |
| Hata tespiti | Derleme zamanında | Çalışma zamanında |
| Taşınabilirlik | Platforma bağlı | Platform bağımsız |
| Örnekler | C, C++, Go, Rust | Python, JavaScript, Ruby |
Python Yavaş mı?
Evet, Python saf hesaplama hızında C veya C++ kadar hızlı değil. Ama günümüzde birçok uygulama için bu fark önemsiz.
Üstelik Python, kritik performans gerektiren işlerde C ile yazılmış kütüphaneleri (NumPy gibi) çağırabilir. Yani Python'ın kolaylığını kullanırken C'nin hızından faydalanabilirsin.
💡 İpucu: "Python yavaş" argümanını duyduğunda panik yapma. Instagram, YouTube, Spotify gibi dev uygulamalar Python kullanıyor. Hız, çoğu proje için darboğaz değildir. Geliştirme hızı ve kod okunabilirliği genellikle daha önemlidir.
Bytecode: Arada Bir Şey
Teknik olarak Python tamamen "saf yorumlamalı" değildir. Python kodun önce bytecode'a (.pyc dosyaları) derlenir, sonra bu bytecode Python Virtual Machine (PVM) tarafından yorumlanır. Ama pratikte bunu bilmen şu an şart değil — Python'ı "interpreted" dil olarak düşünebilirsin.
REPL: Python'ın İnteraktif Kabuğu
REPL, Read-Eval-Print Loop (Oku-Değerlendir-Yazdır Döngüsü) anlamına gelir. Bu, Python'ı interaktif olarak kullanabileceğin bir ortam.
REPL Nedir?
Terminal'i aç ve python (veya python3) yaz. Karşına >>> işareti çıkacak. Bu, Python'ın seni dinlediği anlamına gelir.
$ python3
Python 3.12.0 (main, Oct 2 2023, 12:00:00)
>>> 2 + 2
4
>>> "Merhaba" + " " + "Dünya"
'Merhaba Dünya'
>>> len("Python")
6
>>>Her satırda bir komut yazıyorsun, Python anında çalıştırıp sonucu gösteriyor. Bu, öğrenme sürecinde altın değerinde bir araç.
REPL Ne İşe Yarar?
Hızlı deney: Bir şeyin nasıl çalıştığını merak ettiğinde anında deneyebilirsin
Hesap makinesi: Python'ı süper güçlü bir hesap makinesi olarak kullanabilirsin
Kütüphane keşfi: Bir fonksiyonun ne döndürdüğünü hemen görebilirsin
Öğrenme: Yeni kavramları küçük parçalar halinde deneyebilirsin
REPL'de Denemeler
>>> # Matematiksel işlemler
>>> 15 * 4
60
>>> 100 / 3
33.333333333333336
>>> 2 ** 10 # 2 üzeri 10
1024
>>> # String işlemleri
>>> isim = "Python"
>>> isim.upper()
'PYTHON'
>>> isim.lower()
'python'
>>> isim * 3
'PythonPythonPython'
>>> # Tip kontrolü
>>> type(42)
<class 'int'>
>>> type(3.14)
<class 'float'>
>>> type("Merhaba")
<class 'str'>REPL'den Çıkış
REPL'den çıkmak için:
exit()yazabilirsinquit()yazabilirsinCtrl + D(macOS/Linux) veyaCtrl + ZsonraEnter(Windows) tuşlarına basabilirsin
>>> exit()
$REPL vs Script Dosyası
REPL, hızlı denemeler için harika. Ama gerçek programlar yazarken .py uzantılı dosyalar kullanacaksın. Aradaki fark şu:
REPL: Bir satır yaz, hemen sonuç gör. Kapattığında her şey kaybolur.
Script dosyası: Tüm kodunu bir dosyaya yaz, kaydet, istediğin zaman çalıştır.
# Bu bir script dosyası olabilir: merhaba.py
isim = input("Adın ne? ")
print(f"Merhaba {isim}!")
print("Python öğrenmeye hoş geldin!")Bu dosyayı terminalde python3 merhaba.py komutuyla çalıştırırsın.
💡 İpucu: Kursta yeni bir kavram öğrendiğinde, önce REPL'de dene. Nasıl çalıştığını anladıktan sonra script dosyasına taşı. Bu ikili yaklaşım öğrenme sürecini çok hızlandırır.
Python'ın Teknik Yapısı (Kısa Bakış)
Bu bölümü şu an derinlemesine anlamana gerek yok. Ama ileride referans olarak işine yarayacak.
CPython
Python denildiğinde aslında CPython kastedilir. Bu, Python'ın C dilinde yazılmış resmi ve en yaygın implementasyonudur. Python.org'dan indirdiğin şey CPython'dır.
Ama başka implementasyonlar da var:
PyPy: Daha hızlı çalışan alternatif (JIT compiler kullanır)
Jython: Java üzerinde çalışan Python
IronPython: .NET üzerinde çalışan Python
MicroPython: Mikrodenetleyiciler için küçültülmüş Python
Şu an sadece CPython'ı bilmen yeterli.
GIL (Global Interpreter Lock)
Python'da GIL denen bir mekanizma var. Bu, aynı anda sadece bir thread'in Python bytecode çalıştırabilmesini sağlar. Bu konu ileri seviye ve şu an kafanı karıştırmasın. İleride çoklu iş parçacığı (multithreading) konusuna geldiğimizde detaylı ele alacağız.
Dinamik Tipleme
Python'da bir değişken tanımlarken tipini belirtmene gerek yok. Python, değişkenin tipini otomatik olarak anlar:
x = 42 # Python bilir ki bu bir integer
x = "Merhaba" # Şimdi x bir string oldu
x = 3.14 # Şimdi x bir floatBu, geliştirme hızını artırır ama dikkatli olmazsan hatalara yol açabilir. Detayları ilerleyen derslerde göreceğiz.
Her Şey Bir Nesne
Python'da her şey bir nesnedir (object). Sayılar, stringler, fonksiyonlar, hatta tipler bile birer nesne. Bu kavramı ilerleyen derslerde çok daha iyi anlayacaksın.
>>> x = 42
>>> type(x)
<class 'int'>
>>> id(x) # Nesnenin bellekteki adresi
140234866357040
>>> x.bit_length() # int nesnesinin bir metodu
6Bir sayının bile metotları (fonksiyonları) var! Bu, Python'ın nesne yönelimli (object-oriented) doğasının bir yansıması.
Python Öğrenme Yolculuğun
Bu kursta Python'ı sıfırdan öğreneceksin. İşte seni bekleyen yolculuğun kısa bir haritası:
Başlangıç Seviyesi (Bu Bölüm - B01)
Python'ı tanıma, kurulum, ilk kod
Değişkenler, veri tipleri, operatörler
Kontrol yapıları (if/else, döngüler)
Fonksiyonlar ve modüller
Orta Seviye
Veri yapıları (liste, sözlük, küme)
Dosya işlemleri
Hata yönetimi (try/except)
Nesne yönelimli programlama (OOP)
İleri Seviye
Dekoratörler, generatörler
Çoklu iş parçacığı (threading/multiprocessing)
Veritabanı işlemleri
Web geliştirme, API oluşturma
Her adım bir öncekinin üzerine inşa ediliyor. Sabırlı ol, bol pratik yap ve en önemlisi — eğlen!
Sık Sorulan Sorular
"Python öğrenmek ne kadar sürer?"
Temelleri öğrenmek birkaç hafta sürebilir. Ama ustalaşmak aylar, hatta yıllar alır. Önemli olan her gün biraz pratik yapmak.
"Matematik bilmem gerekiyor mu?"
Temel Python için ileri matematik gerekmez. Toplama, çıkarma, çarpma, bölme biliyorsan yeterli. Makine öğrenmesi gibi alanlara girersen biraz daha matematik gerekebilir ama o da öğrenilir.
"İngilizce bilmem gerekiyor mu?"
Programlama dilleri İngilizce tabanlı olduğundan temel İngilizce okuma becerisi işini kolaylaştırır. Ama zorunlu değil — bu kurs zaten Türkçe! Kod yazarken karşılaşacağın İngilizce terimleri de burada öğreneceğiz.
"Hangi bilgisayar gerekli?"
Python, neredeyse her bilgisayarda çalışır. Windows, macOS, Linux — fark etmez. Eski bir bilgisayar bile yeterli. Oyun bilgisayarına ihtiyacın yok!
"Python öğrendikten sonra başka dil öğrenmeli miyim?"
Python harika bir başlangıç noktası. Temelleri öğrendikten sonra JavaScript, Java, C# gibi dillere geçiş çok daha kolay olacak çünkü programlama mantığını zaten kavramış olacaksın.
Özet
🐍 Python, Guido van Rossum tarafından 1991'de yaratılmış, okunabilirliği ve sadeliği ön planda tutan bir programlama dilidir.
📜 Python'ın bir felsefesi vardır: The Zen of Python (
import this). Güzel, açık ve basit kod yazmayı teşvik eder.🌍 Python; web geliştirme, veri bilimi, yapay zeka, otomasyon ve daha birçok alanda kullanılır — çok yönlü bir dildir.
🔄 Python bir interpreted (yorumlanmış) dildir: kodun satır satır çalıştırılır, ayrı bir derleme adımı gerekmez.
🎯 Python 2 tarih oldu, her zaman Python 3 kullan.
💻 REPL (interaktif kabuk), Python'ı hızlıca denemek ve öğrenmek için mükemmel bir araçtır. Terminalde
python3yazarak erişebilirsin.
*Bir sonraki derste Python'ı bilgisayarına kuracak ve ilk kodunu çalıştıracaksın. Heyecanlı ol — çünkü artık bir programcı olma yolundasın!* 🚀
AI Asistan
Sorularını yanıtlamaya hazır