Python Nasıl Yapılır?

Python Nasıl Yapılır?
Python Nasıl Yapılır?

Yazılım dünyasına yeni adım atanların veya farklı bir dilden geçiş yapmak isteyenlerin en çok sorduğu soru, modern standartlara uygun olarak Python nasıl yapılır ve bu güçlü programlama diliyle sıfırdan çalışan bir proje nasıl geliştirilir sorusudur. Python, okunabilirliği yüksek sözdizimi (syntax), geniş kütüphane desteği ve yapay zekadan web geliştirmeye kadar uzanan geniş kullanım alanı ile günümüzün en popüler dillerinden biridir. Bu rehberde, 2026 yılı standartlarına uygun modern Python geliştirme süreçlerini adım adım öğreneceksiniz.

Bu makale, bilgisayarına ilk kez Python kuracak olan başlangıç seviyesindeki geliştiricilerden, temiz kod (clean code) prensiplerini ve güvenli kodlama pratiklerini öğrenmek isteyen orta seviye yazılımcılara kadar geniş bir kitleye hitap etmektedir. Rehber boyunca teorik bilgilerin yanı sıra doğrudan çalıştırılabilir, test edilmiş ve modern Python (Sürüm 3.12+) özelliklerini barındıran pratik kod örnekleriyle ilerleyeceğiz. Eğitim sonunda kendi başınıza güvenli, modüler ve ölçeklenebilir Python uygulamaları geliştirebilecek seviyeye geleceksiniz.

Python ile kod yazarken sadece sözdizimini bilmek yeterli değildir; aynı zamanda kodun nasıl organize edileceğini, sanal ortamların (virtual environment) nasıl yönetileceğini ve veri tabanı gibi dış sistemlerle nasıl güvenli bağlantı kurulacağını da bilmeniz gerekir. Hazırsanız, modern araçlar ve profesyonel yöntemlerle adım adım Python dünyasına giriş yapalım.

Ön Hazırlık ve Geliştirme Ortamının Kurulması

Python ile kod yazmaya başlamadan önce, yerel bilgisayarımızda temiz ve izole bir geliştirme ortamı oluşturmamız gerekir. Farklı projelerin farklı kütüphane sürümlerine ihtiyaç duyması nedeniyle, küresel (global) Python kurulumunu kirletmemek yazılım mühendisliğinin en temel kurallarından biridir. 2026 yılında, Python projelerinde sanal ortam yönetimi için yerleşik venv modülü standart olarak kullanılmaktadır.

İlk olarak resmi Python web sitesinden işletim sisteminize uygun en güncel Python 3.x sürümünü indirin. Kurulum sırasında "Add Python to PATH" (Python'ı PATH'e ekle) seçeneğini işaretlediğinizden emin olun. Ardından, kodlarımızı yazmak için modern bir kod editörü olan Visual Studio Code (VS Code) veya PyCharm yazılımlarından birini bilgisayarınıza kurun. Kurulum tamamlandıktan sonra terminal veya komut satırını açarak aşağıdaki adımları sırasıyla uygulayın.

Önemli Güvenlik Uyarısı: Üretim (production) ortamlarında asla sistem Python'ını doğrudan kullanmayın. Her zaman projenize özel bir sanal ortam oluşturun ve bağımlılıklarınızı bu ortamda izole edin.

Aşağıdaki komutlar yardımıyla projeniz için yeni bir dizin oluşturabilir, bu dizin içinde sanal ortamınızı aktif hale getirebilir ve güncel paket yöneticisini kontrol edebilirsiniz:

# Proje klasörü oluşturun ve içine girin
mkdir python_egitim
cd python_egitim

# Sanal ortamı (virtual environment) oluşturun
python -m venv .venv

# Sanal ortamı aktif hale getirin (Windows için)
.venv\Scripts\activate

# Sanal ortamı aktif hale getirin (macOS / Linux için)
source .venv/bin/activate

# Pip paket yöneticisini en son sürüme güncelleyin
python -m pip install --upgrade pip

Yukarıdaki komut dizisi, projenizi dış dünyadan izole ederek sadece bu projeye özgü kütüphaneleri yüklemenize olanak tanır. Terminalinizin başında (.venv) ibaresini görüyorsanız, sanal ortamınız başarıyla aktif edilmiş demektir. Artık ilk kodumuzu yazmaya hazırız.

Adım 1: Python Temel Sözdizimi ve İlk Kodun Çalıştırılması

Python'da değişken tanımlarken diğer birçok dilin aksine veri tipini (int, string, float vb.) belirtmek zorunda değilsinizdir. Python, dinamik tür sistemine (dynamic typing) sahiptir ve değişkenin değerine bakarak türünü otomatik olarak belirler. Ancak modern Python pratiklerinde, kodun okunabilirliğini ve hata denetimini artırmak için "Type Hinting" (Tür İpuçları) kullanımı oldukça yaygınlaşmıştır.

İlk örneğimizde temel veri tiplerini, değişken tanımlamayı ve modern metin biçimlendirme yöntemi olan f-string (formatted string) kullanımını göreceğiz. Proje klasörünüzde adim1_temel.py adında bir dosya oluşturun ve aşağıdaki kodları yazın:

# Değişken tanımlama ve Tür İpuçları (Type Hinting) kullanımı
kullanici_adi: str = "Ahmet"
kullanici_yasi: int = 28
aktif_mi: bool = True
bakiye: float = 1550.75

# Modern f-string ile metin biçimlendirme
print(f"Kullanıcı Adı: {kullanici_adi} (Türü: {type(kullanici_adi)})")
print(f"Yaş: {kullanici_yasi} (Türü: {type(kullanici_yasi)})")
print(f"Sistemde Aktif mi: {aktif_mi}")
print(f"Hesap Bakiyesi: {bakiye:.2f} TL")

# Basit bir matematiksel işlem ve dinamik tür değişimi testi
yeni_bakiye = bakiye + 450
print(f"Güncel Bakiye: {yeni_bakiye} TL")

Yazdığınız bu kodu çalıştırmak için terminale python adim1_temel.py yazıp Enter tuşuna basın. Kod başarıyla çalıştığında ekranda değişkenlerin değerlerini, türlerini ve biçimlendirilmiş bakiye bilgisini göreceksiniz. f-string yapısındaki :.2f} ifadesi, ondalıklı sayının virgülden sonra sadece iki basamağını göstermemizi sağlar.

Adım 2: Kontrol Yapıları ve Döngüler ile Algoritma Kurma

Programlama mantığının temelini karar mekanizmaları ve tekrarlayan işlemler oluşturur. Python'da karar yapıları için if, elif ve else anahtar kelimeleri kullanılır. Döngüler için ise belirli bir sayıda dönmek için for, belirli bir koşul sağlandığı sürece dönmek için while tercih edilir. Python'da süslü parantezler {} yerine girintileme (indentation) kuralı uygulanır; bu kural kodun her zaman düzenli görünmesini zorunlu kılar.

Aşağıdaki örnekte, bir kullanıcının yaş sınırına göre sisteme giriş iznini kontrol eden ve ardından bir liste içerisindeki sayıları analiz eden gelişmiş bir kontrol ve döngü yapısı kuracağız. Projenizde adim2_donguler.py dosyası oluşturarak kodları ekleyin:

# Karar mekanizması (if-elif-else) örneği
yas: int = 20

if yas < 18:
    print("Sisteme erişim engellendi: 18 yaşından küçüksünüz.")
elif yas == 18:
    print("Sisteme sınırda erişim sağlandı. Lütfen profilinizi doğrulayın.")
else:
    print("Sisteme başarıyla giriş yapıldı.")

# Döngüler ve Liste işlemleri
sayilar: list[int] = [12, 45, 7, 23, 56, 89, 4]
cift_sayilar: list[int] = []
tek_sayilar: list[int] = []

# Liste elemanlarını tek tek dönerek analiz etme
for sayi in sayilar:
    if sayi % 2 == 0:
        cift_sayilar.append(sayi)
    else:
        tek_sayilar.append(sayi)

print(f"Orijinal Liste: {sayilar}")
print(f"Çift Sayılar: {cift_sayilar}")
print(f"Tek Sayılar: {tek_sayilar}")

Bu kodu python adim2_donguler.py komutuyla çalıştırın. Kod, girintileme kurallarına uygun olarak çalışacak, yaş kontrolünü yapacak ve listedeki sayıları tek veya çift olmalarına göre ayırarak yeni listelere ekleyecektir. Python'da girintilemenin genellikle 4 boşluk (space) karakteriyle yapıldığını unutmayın.

Adım 3: Fonksiyonlar ve Modüler Kod Yazımı

Yazılım geliştirmede kendinizi tekrar etmemek (DRY - Don't Repeat Yourself) altın kurallardan biridir. Tekrarlanan kod bloklarını fonksiyonlar haline getirerek hem okunabilirliği artırır hem de bakım süreçlerini kolaylaştırırız. Python'da fonksiyonlar def anahtar kelimesiyle tanımlanır. Modern Python'da fonksiyon parametrelerine tür ipuçları eklemek ve fonksiyonun ne döndüreceğini -> işaretiyle belirtmek hataları minimize eder.

Aşağıdaki örnekte, bir ürünün KDV'li fiyatını hesaplayan ve geriye sözlük (dictionary) tipinde detaylı veri dönen profesyonel bir fonksiyon yapısı kuracağız. adim3_fonksiyonlar.py dosyasını oluşturun ve kodları yazın:

# Tür ipuçları ve dökümantasyon (docstring) içeren fonksiyon tanımlama
def kdv_hesapla(urun_adi: str, ham_fiyat: float, kdv_orani: float = 0.20) -> dict:
    """
    Verilen ürün adı, ham fiyat ve KDV oranına göre detaylı fiyat hesaplaması yapar.
    
    Parametreler:
        urun_adi (str): Ürünün ismi.
        ham_fiyat (float): Vergisiz fiyat.
        kdv_orani (float): KDV yüzdesi (Varsayılan: %20).
        
    Dönen Değer:
        dict: Hesaplama detaylarını içeren sözlük yapısı.
    """
    if ham_fiyat < 0:
        raise ValueError("Fiyat değeri sıfırdan küçük olamaz.")
        
    kdv_tutari = ham_fiyat * kdv_orani
    toplam_fiyat = ham_fiyat + kdv_tutari
    
    return {
        "urun": urun_adi,
        "ham_fiyat": ham_fiyat,
        "kdv_tutari": kdv_tutari,
        "toplam_fiyat": toplam_fiyat
    }

# Fonksiyonu farklı parametrelerle test etme
try:
    sonuc_1 = kdv_hesapla("Dizüstü Bilgisayar", 25000.0)
    sonuc_2 = kdv_hesapla("Temel Gıda Ürünü", 150.0, 0.01)
    
    print(f"1. Ürün Sonucu: {sonuc_1['urun']} -> Toplam: {sonuc_1['toplam_fiyat']} TL")
    print(f"2. Ürün Sonucu: {sonuc_2['urun']} -> Toplam: {sonuc_2['toplam_fiyat']} TL")
except ValueError as hata:
    print(f"Hesaplama hatası gerçekleşti: {hata}")

Kodu terminalden çalıştırdığınızda, fonksiyonun varsayılan parametreleri nasıl kullandığını ve farklı KDV oranlarına göre nasıl dinamik sonuçlar ürettiğini göreceksiniz. Fonksiyonun hemen altında yer alan üç tırnaklı """ alan, Python topluluğunda "docstring" olarak adlandırılır ve kodunuzu otomatik dökümante etmek için kullanılır.

Adım 4: Nesne Yönelimli Programlama (OOP) Yapısı

Büyük ölçekli projelerde verileri ve bu veriler üzerinde işlem yapan fonksiyonları bir arada tutmak için Nesne Yönelimli Programlama (OOP) paradigmasını kullanırız. Python, tamamen nesne yönelimli bir dildir. Sınıflar (class), nesnelerin şablonlarıdır. Sınıf içindeki özel fonksiyonlara metod, değişkenlere ise nitelik (attribute) adı verilir.

Bu adımda, bir banka hesabını simüle eden, içinde bakiye gizleme (encapsulation) özelliği barındıran ve güvenli para yatırma/çekme metotları olan bir sınıf tasarlayacağız. Projenizde adim4_oop.py dosyası oluşturun:

class BankaHesabi:
    def __init__(self, hesap_sahibi: str, ilk_bakiye: float = 0.0) -> None:
        self.hesap_sahibi: str = hesap_sahibi
        # Çift alt çizgi (__) ile niteliği gizli (private) hale getiriyoruz
        self.__bakiye: float = ilk_bakiye

    # Gizli bakiyeyi güvenli bir şekilde okumak için getter metodu
    def bakiye_goster(self) -> float:
        return self.__bakiye

    # Hesaba güvenli para yatırma metodu
    def para_yatir(self, miktar: float) -> None:
        if miktar > 0:
            self.__bakiye += miktar
            print(f"{miktar} TL yatırıldı. Güncel bakiye: {self.__bakiye} TL")
        else:
            print("Geçersiz miktar! Yatırılacak tutar sıfırdan büyük olmalıdır.")

    # Hesaptan güvenli para çekme metodu
    def para_cek(self, miktar: float) -> bool:
        if 0 < miktar                
Bu yazıya tepkinizi paylaşın:
Burak Şahin

Verimlilik ve organizasyon üzerine uzmanlaşmış bir yazarım. Karmaşık görevleri yönetilebilir parçalara bölerek okuyucunun zamanını doğru kullanmasını sağlıyorum.

Yorumlar (0)

Yorum Yaz