YZ Destekli Kodlama Notları

Python ile Programlama · Ünite 1

Python'a Giriş ve Geliştirme Ortamı

10 soruluk deneme testine geç ↓

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).

Deneme testi

Sınavda çıkabilecek türden 10 soru. Bir şık seç; doğru cevap ve açıklaması hemen çıkar.

  1. 1.Python programlama dili adını nereden almıştır?

  2. 2.Python kaynak kodu çalıştırılmadan önce hangi ara biçime derlenip .pyc dosyalarında saklanır?

  3. 3.PEP 8'e göre bir sınıf adı nasıl yazılmalıdır?

  4. 4.Python yorumlayıcısına «import this» yazıldığında ekrana ne gelir?

  5. 5.Kurulumdan sonra terminalde «'python' is not recognized…» hatası alınıyor. En olası sebep nedir?

  6. 6.Python'da bytecode'u çalıştıran bileşen hangisidir?

  7. 7.print("A", "B", sep="-", end="?") komutunun çıktısı nedir?

  8. 8.Bir projenin bağımlılıklarını sürümleriyle requirements.txt dosyasına yazmak için hangi komut kullanılır?

  9. 9.Bir klasörün sanal ortam olduğunu Python hangi dosyadan anlar?

  10. 10.Sanal ortam etkinleştirilmeden pip install komutu çalıştırılırsa ne olur?

Bu not ders kitabının yerine geçmez; konu kendi cümlelerimizle, yapay zekâ desteğiyle özetlendi.