Yazılım dünyasına adım atmak, kariyerini yeni bir yöne taşımak veya mevcut teknik becerilerini geliştirmek isteyen birçok geliştirici adayı, arama motorlarında sıklıkla Python nasıl yapılır? sorusunun cevabını aramaktadır. Python, yüksek okunabilirliği, sade sözdizimi (syntax) ve muazzam kütüphane ekosistemi sayesinde günümüzde yapay zekadan veri bilimine, web geliştirmeden otomasyon sistemlerine kadar her alanda ilk tercih haline gelmiştir. Bu kapsamlı rehberde, 2026 yılı standartlarına uygun modern yaklaşımlarla, sıfırdan başlayarak çalışan uygulamalar geliştirmeye kadar uzanan Python programlama sürecini adım adım öğreneceksiniz.
Bu eğitim makalesi, daha önce hiç kod yazmamış olan başlangıç seviyesindeki meraklılardan, Python dilinin modern pratiklerini (best practices) öğrenmek isteyen orta düzey geliştiricilere kadar geniş bir kitleye hitap etmektedir. Rehber boyunca teorik bilgilerin yanı sıra, her adımda neyi neden yaptığımızı açıklayan, doğrudan çalıştırılabilir ve güvenli kod örnekleri bulacaksınız. Eğitim sonunda kendi veri analizi ve dosya işleme programınızı yazabilecek seviyeye geleceksiniz.
Ön Hazırlık ve Gereksinimler: Python Kurulumu Nasıl Yapılır?
Python ile kod geliştirmeye başlamadan önce, bilgisayarınızda kodun çalışmasını sağlayacak yorumlayıcı (interpreter) ve kodları yazacağımız bir tümleşik geliştirme ortamının (IDE - Integrated Development Environment) kurulu olması gerekir. Yorumlayıcı, yazdığınız insan tarafından okunabilir kodları bilgisayarın anlayacağı makine diline çeviren yazılımdır.
2026 yılı itibarıyla projelerinizde en güncel ve kararlı Python 3.12+ veya üzeri sürümleri kullanmanız önerilir. Eski Python 2 sürümü tamamen yürürlükten kalkmıştır (deprecated) ve güvenlik açıkları barındırmaktadır. Kurulum adımlarını sırasıyla uygulayarak ortamınızı hazırlayalım:
- Python İndirme: Python resmi web sitesine (python.org) gidin ve işletim sisteminize (Windows, macOS veya Linux) uygun en güncel kararlı sürümü indirin.
- Kurulum Sihirbazı Ayarı: Windows kullanıcıları için kurulum ekranında alt kısımda yer alan "Add python.exe to PATH" seçeneğini mutlaka işaretleyin. Bu seçenek, komut satırından Python komutlarına doğrudan erişmenizi sağlar.
- IDE Seçimi: Kodlarınızı yazmak için modern, hızlı ve ücretsiz bir editör olan Visual Studio Code (VS Code) veya PyCharm Community Edition kullanabilirsiniz. Bu rehberdeki örnekleri VS Code üzerinde çalıştırmanız önerilir.
Kurulumun başarıyla tamamlandığını doğrulamak için işletim sisteminizin terminalini (Windows'ta Komut İstemi veya PowerShell, macOS/Linux'ta Terminal) açın ve aşağıdaki komutu yazarak test edin:
python --version
Eğer terminal ekranında "Python 3.12.x" veya daha güncel bir sürüm numarası görüyorsanız, kurulum başarıyla tamamlanmış demektir. Artık ilk kodumuzu yazmaya hazırız.
Python'da Temel Sözdizimi ve İlk Kodun Yazılması
Python dilinin en büyük avantajı, gereksiz noktalama işaretlerinden (örneğin satır sonlarındaki noktalı virgüllerden) arındırılmış, temiz bir sözdizimine sahip olmasıdır. Python, kod bloklarını belirlemek için süslü parantezler { } yerine girintileme (indentation) kuralını kullanır. Genellikle her girinti için 4 boşluk karakteri tercih edilir.
Aşağıdaki örnek kodda, Python'da ekrana çıktı vermeyi, değişken tanımlamayı ve dinamik tür atama (dynamic typing) özelliğini göreceksiniz. Python'da bir değişkenin türünü (metin, sayı vb.) önceden belirtmeniz gerekmez; yorumlayıcı bunu otomatik olarak algılar.
# İlk Python kodumuz: Değişken tanımlama ve ekrana yazdırma
kullanici_adi = "Ahmet" # String (Metin) türünde bir değişken
yas = 28 # Integer (Tam Sayı) türünde bir değişken
aktif_mi = True # Boolean (Mantıksal) türünde bir değişken
# f-string (Formatlı Metin) kullanarak değişkenleri ekrana yazdırma
print(f"Merhaba {kullanici_adi}, sisteme hoş geldiniz!")
print(f"Yaşınız: {yas} | Hesap Durumu: {aktif_mi}")
Yukarıdaki kod bloğunda, # karakteri ile başlayan satırlar yorum satırlarıdır ve Python yorumlayıcısı tarafından göz ardı edilir. print() fonksiyonu, parantez içine yazılan değerleri ekrana yazdırmaya yarar. f"..." yapısı ise metin içerisine değişkenleri dinamik ve güvenli bir şekilde yerleştirmemizi sağlayan modern bir yöntemdir.
Python Kontrol Yapıları ve Döngüler Nasıl Kullanılır?
Gerçek hayattaki programlar, belirli koşullara göre farklı kararlar almalı ve tekrarlayan işlemleri otomatik olarak yapmalıdır. Python'da karar mekanizmaları if, elif (else if) ve else anahtar kelimeleriyle kurulur. Tekrarlayan işlemler için ise for ve while döngüleri (loops) kullanılır.
Aşağıdaki örnek kodda, bir kullanıcının yaş sınırına göre sisteme erişim yetkisini kontrol eden ve ardından bir liste içerisindeki yetkili kullanıcıları döngüyle ekrana yazdıran yapıyı inceleyebilirsiniz:
# Koşullu durum kontrolü (If-Else)
kullanici_yasi = 20
if kullanici_yasi < 18:
print("Erişim engellendi: 18 yaşından küçüksünüz.")
elif kullanici_yasi == 18:
print("Sınırda erişim: Lütfen veli onayını kontrol edin.")
else:
print("Erişim onaylandı: Sisteme giriş yapabilirsiniz.")
# For döngüsü ile liste elemanlarını dönme (Iterasyon)
kullanicilar = ["Can", "Ece", "Mert", "Selin"]
print("\nSistemdeki Aktif Kullanıcılar:")
for sira, kisi in enumerate(kullanicilar, start=1):
print(f"{sira}. Kullanıcı: {kisi}")
Bu kod bloğunda, girintilemenin (indentation) kodun çalışması için ne kadar kritik olduğunu görebilirsiniz. if ve for satırlarının sonundaki iki nokta üst üste (:) işareti, yeni bir kod bloğunun başladığını belirtir. enumerate() fonksiyonu ise döngü sırasında elemanların indeks numaralarını (sırasını) otomatik olarak takip etmemizi sağlar.
Kritik Güvenlik Uyarısı: Kullanıcıdan alınan girdileri (input) doğrudan koşul bloklarında veya veri tabanı sorgularında doğrulamadan kullanmak güvenlik açıklarına yol açar. Her zaman girdi türünü ve sınırlarını kontrol edin.
Fonksiyonlar ve Modüler Kod Yapısı Nasıl Oluşturulur?
Kod tabanınız büyüdükçe, aynı kodları tekrar tekrar yazmak yerine bunları yeniden kullanılabilir yapılara dönüştürmeniz gerekir. Bu yapılara fonksiyon (function) denir. Python'da fonksiyonlar def anahtar kelimesi ile tanımlanır.
2026 yılı modern Python standartlarında, fonksiyonların hangi türde veri alıp hangi türde veri döndüreceğini belirtmek için tür ipuçları (type hinting) kullanımı yaygınlaşmıştır. Bu pratik, kodun okunabilirliğini artırır ve hataları geliştirme aşamasında yakalamaya yardımcı olur.
# Tür ipuçları içeren güvenli bir KDV hesaplama fonksiyonu
def kdv_hesapla(fiyat: float, kdv_orani: float = 0.20) -> float:
"""
Verilen fiyat ve KDV oranına göre toplam tutarı hesaplar.
Varsayılan KDV oranı %20'dir.
"""
if fiyat < 0 or kdv_orani < 0:
raise ValueError("Fiyat veya KDV oranı negatif olamaz!")
toplam_tutar = fiyat + (fiyat * kdv_orani)
return round(toplam_tutar, 2)
# Fonksiyonun test edilmesi
try:
urun_fiyati = 1500.0
sonuc = kdv_hesapla(urun_fiyati)
print(f"Ürün Fiyatı: {urun_fiyati} TL | KDV Dahil: {sonuc} TL")
# Hatalı parametre testi
kdv_hesapla(-50)
except ValueError as hata:
print(f"Hata Yakalandı: {hata}")
Yukarıdaki örnekte, fonksiyon parametrelerinin yanındaki : float ifadesi ve fonksiyonun sonundaki -> float belirteci tür ipuçlarıdır. Fonksiyonun içinde yer alan üç tırnaklı alan (""" ... """) ise "docstring" olarak adlandırılır ve fonksiyonun ne işe yaradığını belgelemek için kullanılır. Ayrıca raise ifadesi ile olası hatalı girdilere karşı güvenli bir savunma mekanizması kurulmuştur.
Python ile Veri Yapıları ve Liste Yönetimi Nasıl Yapılır?
Python, verileri organize etmek ve yönetmek için oldukça güçlü yerleşik veri yapılarına sahiptir. Bunların en yaygın kullanılanları listeler (lists) ve sözlüklerdir (dictionaries). Listeler sıralı eleman gruplarını tutarken, sözlükler anahtar-değer (key-value) çiftleriyle çalışır.
Aşağıdaki örnekte, modern Python pratiklerinden biri olan List Comprehension (Liste Üreteci) yöntemini ve sözlük veri yapısı üzerindeki işlemleri göreceksiniz. Bu yöntem, geleneksel döngülere kıyasla daha hızlı ve tek satırda liste oluşturmayı sağlar.
# Sözlük (Dictionary) veri yapısı örneği
urun_stogu = {
"laptop": 15,
"telefon": 45,
"tablet": 8,
"kulaklik": 120
}
# Stoğu 20'den az olan ürünleri filtreleyen List Comprehension yapısı
kritik_stoklar = [urun for urun, miktar in urun_stogu.items() if miktar < 20]
print("Stok Durumu Kontrolü:")
print(f"Tüm Ürünler ve Stoklar: {urun_stogu}")
print(f"Kritik Stok Seviyesindeki Ürünler (Stok < 20): {kritik_stoklar}")
# Yeni ürün ekleme ve güncelleme
urun_stogu["tablet"] = 25 # Stok güncelleme
urun_stogu["akilli_saat"] = 30 # Yeni ürün ekleme
print(f"Güncel Stok Listesi: {urun_stogu}")
Bu kodda, urun_stogu.items() metodu sözlükteki hem anahtarı (ürün adı) hem de değeri (stok miktarı) aynı anda almanızı sağlar. List comprehension satırı ise geleneksel bir for döngüsü ve if koşulunu tek bir satırda birleştirerek kod kalabalığını önler.
Python ile Dosya İşlemleri ve Hata Yönetimi Nasıl Yapılır?
Yazılım projelerinde harici dosyalarla çalışmak (veri okuma, günlük tutma, rapor yazma) en temel gereksinimlerden biridir. Dosya işlemlerinde en kritik nokta, işlem bittikten sonra dosyanın sistem kaynaklarını tüketmemesi için güvenli bir şekilde kapatılmasıdır. Python'da bu işlem with bloğu (context manager) kullanılarak otomatik olarak yapılır.
Aşağıdaki örnek kodda, bir dosyaya güvenli bir şekilde veri yazmayı, ardından bu veriyi okumayı ve olası dosya bulunamadı hatalarını try-except bloklarıyla yönetmeyi öğreneceksiniz:
# Dosyaya veri yazma işlemi (with bloğu ile güvenli kapatma)
dosya_yolu = "sistem_raporu.txt"
try:
with open(dosya_yolu, "w", encoding="utf-8") as dosya:
dosya.write("Rapor Tarihi: 2026-03-30\n")
dosya.write("Sistem Durumu: Kararlı\n")
dosya.write("Hata Oranı: %0.02\n")
print("Dosya başarıyla oluşturuldu ve veriler yazıldı.")
# Dosyadan veri okuma işlemi
with open(dosya_yolu, "r", encoding="utf-8") as dosya:
icerik = dosya.read()
print("\n--- Dosya İçeriği ---")
print(icerik)
print("---------------------")
except FileNotFoundError:
print(f"Hata: '{dosya_yolu}' isimli dosya sistemde bulunamadı.")
except IOError:
print("Hata: Dosya okunurken veya yazılırken bir girdi/çıktı hatası oluştu.")
Bu kodda kullanılan "w" modu (write) dosyanın üzerine yazılacağını, "r" modu (read) ise dosyanın okunacağını belirtir. encoding="utf-8" parametresi, Türkçe karakterlerin (ş, ç, ğ, ü, ö, ı) bozulmadan doğru bir şekilde kaydedilmesini ve okunmasını garanti altına alır.
Adım Adım Uygulama: Python ile Güvenli Veri Analizi Projesi
Şimdiye kadar öğrendiğimiz tüm temel yapıları (değişkenler, döngüler, fonksiyonlar, dosya işlemleri ve hata yönetimi) bir araya getirerek gerçekçi bir mini proje geliştirelim. Bu projemizde, ham bir veri listesinden gelen kullanıcı harcamalarını analiz edecek, hatalı verileri ayıklayacak ve sonuçları bir rapor dosyasına kaydedeceğiz.
# Güvenli Veri Analizi Uygulaması
# Ham veri seti (Kullanıcı adı, harcama tutarı)
# Bazı veriler hatalı veya eksik girilmiş olabilir (None veya negatif değerler)
ham_veriler = [
{"kullanici": "Zeynep", "harcama": 1500.50},
{"kullanici": "Kaan", "harcama": -250.00}, # Hatalı veri (negatif harcama)
{"kullanici": "Selin", "harcama": 3200.00},
{"kullanici": "Can", "harcama": None}, # Eksik veri
{"kullanici": "Deniz", "harcama": 850.75}
]
def veriyi_temizle_ve_analiz_et(veri_listesi: list) -> dict:
"""
Veri listesindeki hatalı kayıtları ayıklar, toplam ve ortalama harcamayı hesaplar.
"""
gecerli_harcamalar = []
hatali_kayit_sayisi = 0
for veri in veri_listesi:
harcama = veri.get("harcama")
# Güvenlik ve doğruluk kontrolü
if harcama is None or not isinstance(harcama, (int, float)) or harcama < 0:
hatali_kayit_sayisi += 1
continue
gecerli_harcamalar.append(harcama)
toplam = sum(gecerli_harcamalar)
ortalama = toplam / len(gecerli_harcamalar) if gecerli_harcamalar else 0.0
return {
"toplam_harcama": round(toplam, 2),
"ortalama_harcama": round(ortalama, 2),
"gecerli_islem": len(gecerli_harcamalar),
"hatali_islem": hatali_kayit_sayisi
}
# Analizi çalıştırma ve sonuçları dosyaya kaydetme
try:
analiz_sonuclari = veriyi_temizle_ve_analiz_et(ham_veriler)
rapor_dosyasi = "analiz_ozeti.txt"
with open(rapor_dosyasi, "w", encoding="utf-8") as rapor:
rapor.write("=== VERİ ANALİZ RAPORU ===\n")
rapor.write(f"Geçerli İşlem Sayısı: {analiz_sonuclari['gecerli_islem']}\n")
rapor.write(f"Hatalı/Ayıklanan İşlem Sayısı: {analiz_sonuclari['hatali_islem']}\n")
rapor.write(f" 

Yorumlar (0)
Yorum Yaz