← Python ile Programlama

Python ile Programlama · Ünite 1

Python'a Giriş ve Geliştirme Ortamı

1. Programlama ve Python'un yeri

Programlama, bir problemin çözümünü bilgisayarın uygulayabileceği adımlara dökmek. İnsan belirsizliği tolere eder, bilgisayar etmez; bu yüzden her ayrıntı tek tek ve kesin yazılmalı. Bu talimatların yazıldığı dile programlama dili denir.

Dilleri iki eksende ayırmak

EksenBir uçÖbür uç
SoyutlamaDüşük seviye: makine kodu (0-1), AssemblyYüksek seviye: insan diline yakın — Python, Java, JavaScript
Çalışma modeliDerlenen: önce tümü makine koduna çevrilir — C, C++, Rust, GoYorumlanan: çalışırken satır satır işlenir — Python, Ruby, PHP, JavaScript
PythonJavaC++
TürYorumlanan (bytecode)Derlenen + JVMDerlenen
Tip sistemiDinamikStatikStatik
HızOrtaHızlıÇok hızlı
Bellek yönetimiOtomatikOtomatikElle
Tipik kullanımVeri, YZ, webKurumsalSistem, oyun

Kısa tarih ve isim

Nerelerde kullanılıyor?

Python genel amaçlı bir dil: tek bir alana bağlı değil.

Python'un felsefesi: PEP 8 ve PEP 20

PEP, Python için önerilen değişiklikleri anlatan resmî belge. İki ünlüsü:

# PEP 8'e uygun adlandırma
ogrenci_sayisi = 42          # değişken: snake_case
MAX_KAPASITE = 50            # sabit: büyük harf

def ortalama_hesapla():      # fonksiyon: snake_case
    ...

class OgrenciKaydi:          # sınıf: CamelCase
    ...

2. Kurulum ve IDE seçimi

Python ile çalışmak için iki katman gerekir: kodu çalıştıran yorumlayıcı ve kodu rahat yazdığın geliştirme ortamı.

İşletim sistemine göre kurulum

SistemYolDikkat
Windowspython.org'dan .exe yükleyici«Add python.exe to PATH» kutusunu mutlaka işaretle
macOS.pkg yükleyici ya da Homebrew: brew install pythonpython eski 2.x'i açabilir → python3 kullan
Linuxsudo apt install python3 python3-venvGüncel sürüm için deadsnakes PPA
python --version
# Python 3.x.x

python -c "print('Merhaba')"
# Merhaba

PATH ve en sık hata

PATH, işletim sisteminin bir komut yazıldığında programı aradığı klasörlerin listesi. Windows'ta girdiler noktalı virgülle (;), Linux/macOS'ta iki noktayla (:) ayrılır.

Hangi IDE?

IDEKimdenArtısıEksisi
IDLEPython ile birlikte gelirSıfır kurulumSınırlı özellik, Git yok
ThonnyTartu Üniversitesi (Estonya)Adım adım çalıştırma, değişkenleri görme; içinde Python gelirBüyük projeye yetmez
VS CodeMicrosoft (açık kaynak)Eklentiler, IntelliSense, terminalİlk ayar zaman alır
PyCharmJetBrainsDerin kod analizi, akıllı tamamlamaÇok RAM yer
Jupyter NotebookProject JupyterHücre hücre kod + metin + grafik; veri analiziGenel yazılım için uygun değil

3. Yorumlayıcı ve ilk program

Bilgisayarındaki Python aslında CPython: C ile yazılmış, resmî (referans) uygulama. Bir .py dosyasını çalıştırınca arka planda beş adım olur:

Ayrı bir derleme adımı yok ve bytecode her sistemde aynı → kod her yerde değişmeden çalışır. Bedeli: C'ye göre daha yavaş.

Çalıştırma kipiKomut
Etkileşimli (REPL)python
Betik (dosya)python dosya.py
Tek komutpython -c "komut"

REPL bir hesap makinesi

>>> kisa = 12
>>> uzun = 30
>>> kisa * uzun
360
>>> 2 ** 8
256

print(), yorum ve docstring

print() değerleri ekrana yazan yerleşik fonksiyon. sep değerlerin arasına, end satır sonuna ne konacağını belirler (varsayılanlar: boşluk ve yeni satır). Python 2'de deyimdi, Python 3'te fonksiyon oldu.

"""selam.py — ilk Python programım."""

# Bu satır yorum: Python bunu hiç çalıştırmaz
print("Merhaba Dünya!")
print("Ankara", "İzmir", "Bursa", sep=" / ", end=".\n")
Merhaba Dünya!
Ankara / İzmir / Bursa.

f-string

Python 3.6'dan beri: dizenin önüne f koy, süslü parantez içine değişken ya da ifade yaz. + ile birleştirmekten daha kısa ve okunaklı.

sehir = "Eskişehir"
gun = 3
print(f"{sehir} gezisi {gun} gün, yani {gun * 24} saat.")
# Eskişehir gezisi 3 gün, yani 72 saat.

4. Sanal ortam ve paket yönetimi

Normalde pip ile kurulan her paket tek bir ortak klasöre (site-packages) gider. Bir proje bir paketin eski sürümünü, başka proje yenisini isterse ikincisi birincinin üzerine yazar. Buna bağımlılık çakışması denir. (Bağımlılık: projenin çalışması için gereken dış paketler.)

Çözüm sanal ortam (virtual environment): her projeye kendi site-packages'ı, kendi pip'i olan izole bir klasör. Fikir 2007'de virtualenv ile çıktı, 2011'de PEP 405 ile resmîleşti, Python 3.3'ten beri venv modülü olarak hazır geliyor.

Oluştur → etkinleştir → kur → kaydet → paylaş
# Windows
python -m venv proje_env
proje_env\Scripts\activate

# macOS / Linux
python3 -m venv proje_env
source proje_env/bin/activate

# İkisinde de
pip install requests
pip freeze > requirements.txt
deactivate

pip komutları

KomutNe yapar?
pip install paketPyPI'dan en son sürümü kurar
pip install paket==2.1.0Belirli bir sürümü kurar
pip install --upgrade paketGünceller
pip uninstall paketKaldırır
pip listKurulu paketleri tablo hâlinde gösterir (pip'in kendisi dahil)
pip show paketBir paketin ayrıntıları
pip freezepaket==sürüm biçiminde liste; pip'i dışarıda bırakır
pip install -r requirements.txtDosyadaki bütün paketleri kurar

requirements.txt: projenin bütün bağımlılıklarını sürümleriyle listeleyen düz metin dosyası. pip freeze > requirements.txt ile ortamın fotoğrafı çekilir, Git'e eklenir; projeyi alan kişi yeni bir ortam kurup pip install -r requirements.txt ile birebir aynı ortamı birkaç dakikada kurar. «Bende çalışıyordu» tartışması biter.

Kendini test et!

Cevabı görmek için soruya dokun.

  1. 1.Python'un adı nereden gelir?

    ✓ İngiliz komedi grubu Monty Python'dan (BBC dizisi Monty Python's Flying Circus); yılandan değil.

  2. 2.Python neden «saf yorumlanan dil» değildir?

    ✓ Kaynak kod önce bytecode'a (.pyc) derlenir, sonra Python Sanal Makinesi (PVM) bu bytecode'u çalıştırır.

  3. 3.PEP 8'e göre «toplam_puan» ve «OgrenciListesi» adları neye uygundur?

    ✓ toplam_puan snake_case olduğu için değişken/fonksiyon adı; OgrenciListesi CamelCase olduğu için sınıf adı.

  4. 4.Kurulumdan sonra «'python' is not recognized» hatası alınıyor. Sebep ve çözüm nedir?

    ✓ Python klasörü PATH'te değil. Yükleyiciyi Modify ile çalıştırıp «Add Python to environment variables» işaretlemek (ya da Path'e elle eklemek) ve terminali yeniden açmak gerekir.

  5. 5.print("A", "B", sep="-", end="?") ne yazdırır?

    ✓ A-B? (Değerlerin arasına -, sonuna yeni satır yerine ? konur.)

  6. 6.f-string'te {} içine ne yazılabilir?

    ✓ Bir değişken adı ya da {fiyat * 2} gibi bir ifade; Python ifadeyi hesaplayıp sonucu metne yerleştirir.

  7. 7.Arkadaşın requirements.txt olan bir proje gönderdi. Hangi komutları hangi sırayla çalıştırırsın?

    ✓ python -m venv env → env\Scripts\activate (Windows) ya da source env/bin/activate → (env) ön ekini kontrol et → pip install -r requirements.txt.

  8. 8.Bir klasörün sanal ortam olduğunu Python nereden anlar?

    ✓ İçindeki pyvenv.cfg dosyasından (PEP 405).

Kaynak: Anadolu Üniversitesi Açıköğretim Fakültesi, «Python ile Programlama» ders kitabı, Ünite 1. Bu not kitabın yerine geçmez; konuyu kendi cümlelerimle, yapay zekâ desteğiyle özetledim.