Python öğrenmeye sıfırdan başlayın! Kapsamlı rehberimizle temel kavramlardan ileri seviye uygulamalara kadar Python dünyasını keşfedin. Adım adım örnekler ve gerçek senaryolarla programlama becerilerinizi geliştirin. Bu makale, sizi Python programlama yolculuğunuzda baştan sona desteklemek için hazırlandı.
Günümüz dijital çağında programlama dilleri, teknoloji dünyasının kalbinde yer alıyor. Bu diller arasında Python, kendine özgü basitliği, okunabilirliği ve çok yönlülüğü sayesinde öne çıkıyor. Peki, Python tam olarak nedir ve neden bu kadar popüler hale geldi? Python, Guido van Rossum tarafından 1991 yılında geliştirilen, yüksek seviyeli, yorumlanabilir ve nesne yönelimli bir programlama dilidir. Geliştiricilerin daha az kodla daha fazlasını yapmalarına olanak tanıyan minimalist bir felsefeye sahiptir. Bu sayede, karmaşık görevleri bile şaşırtıcı derecede basit ve anlaşılır bir şekilde gerçekleştirebilirsiniz. Python’ın bu özellikleri, onu hem yeni başlayanlar hem de deneyimli programcılar için ideal bir seçim haline getiriyor.
Python’ın popülerliğinin ardında yatan en önemli nedenlerden biri, geniş kullanım alanlarıdır. Web geliştirme, veri bilimi, yapay zeka, makine öğrenmesi, otomasyon, oyun geliştirme ve hatta siber güvenlik gibi birçok farklı alanda Python aktif olarak kullanılmaktadır. Örneğin, Instagram, Spotify gibi popüler uygulamaların arka yüzünde Python çalışırken, Google’ın birçok hizmetinde de bu dilin gücünden faydalanılmaktadır. Veri bilimcileri, büyük veri kümelerini analiz etmek, görselleştirmek ve makine öğrenmesi modelleri oluşturmak için Python’ın güçlü kütüphanelerinden (Pandas, NumPy, Scikit-learn) yararlanır. Sistem yöneticileri, tekrarlayan görevleri otomatikleştirmek için Python scriptleri yazarlar. Kısacası, Python öğrenmek, kariyerinizde size sayısız kapı açabilir ve dijital dünyada aranan bir yetenek olmanızı sağlayabilir.
Vaka Analizi: Küçük Bir İşletmenin Rapor Otomasyonu
Bir e-ticaret işletmesi düşünün. Her gün onlarca ürün satılıyor, yüzlerce sipariş işleniyor. İşletme sahibi, her sabah bir önceki günün satış raporlarını, en çok satan ürünleri ve stok durumunu manuel olarak Excel’e girerek hazırlıyordu. Bu süreç, her gün yaklaşık bir saatini alıyor ve hata yapma olasılığı oldukça yüksekti. İşletme sahibi, Python öğrenmeye karar verdi ve kısa sürede bir otomasyon scripti geliştirdi. Bu script, her sabah e-ticaret platformunun API’sinden (Uygulama Programlama Arayüzü) otomatik olarak verileri çekiyor, bunları işliyor ve belirli bir formatta Excel dosyasına kaydediyordu. Üstelik, kritik stok seviyelerinin altına düşen ürünler için otomatik uyarı e-postaları da gönderiyordu. Bu otomasyon sayesinde işletme sahibi hem zamandan tasarruf etti hem de raporlama hatalarını sıfıra indirdi. Python, sadece büyük şirketlerin değil, küçük ve orta ölçekli işletmelerin de verimliliğini artırmalarına yardımcı olan güçlü bir araçtır.
Python Kurulumu ve İlk Adımlar
Python programlama maceranıza başlamak için öncelikle bilgisayarınıza Python’ı kurmanız gerekir. Bu süreç oldukça basittir:
- Python İndirme: Python’ın resmi web sitesi olan python.org/downloads adresine gidin. İşletim sisteminize (Windows, macOS, Linux) uygun en son kararlı sürümü indirin.
- Kurulum: İndirdiğiniz yükleyiciyi çalıştırın. Kurulum sırasında “Add Python X.X to PATH” seçeneğini işaretlemeyi unutmayın. Bu, komut istemcisinden Python’ı kolayca çalıştırmanızı sağlar. Diğer adımları varsayılan olarak kabul edip kurulumu tamamlayın.
- Kurulumu Doğrulama: Komut istemcisini (Windows’ta CMD veya PowerShell, macOS/Linux’ta Terminal) açın ve
python --versionyazıp Enter tuşuna basın. Kurduğunuz Python sürümünü görmeniz gerekir.
Kod yazmak için bir Metin Editörü veya Entegre Geliştirme Ortamı (IDE) kullanmanız gerekecektir. Başlangıç için VS Code (Visual Studio Code) mükemmel bir seçimdir. Ücretsizdir, hafif ve Python geliştirmesi için güçlü eklentilere sahiptir. VS Code’u kurduktan sonra Python eklentisini de yüklemeyi unutmayın.
Python’ın Temel Yapı Taşları: Değişkenler, Veri Tipleri ve Operatörler Nasıl Çalışır?
Her programlama dilinde olduğu gibi, Python’da da veri depolamak ve bu veriler üzerinde işlemler yapmak için temel yapı taşlarına ihtiyaç duyarız. Bu yapı taşları, değişkenler, veri tipleri ve operatörlerdir. Programlamanın temelini oluşturan bu kavramları anlamak, Python ile etkili bir şekilde kod yazmanın ilk adımıdır. Şimdi gelin, bu temel kavramları adım adım inceleyelim.
İlk Python Kodunuz: “Merhaba Dünya!”
Her programlama yolculuğu klasik bir “Merhaba Dünya!” programıyla başlar. Bu, Python’da ne kadar basit kod yazılabileceğinin mükemmel bir göstergesidir.
print("Merhaba Dünya!")
Bu kodu bir metin dosyasına kaydedip (örneğin, ilk_kod.py) komut istemcisinden python ilk_kod.py yazarak çalıştırdığınızda, ekranda "Merhaba Dünya!" yazısını göreceksiniz. print() fonksiyonu, Python'ın yerleşik bir fonksiyonudur ve parantez içindeki ifadeyi ekrana yazdırmak için kullanılır.
Değişkenler ve Veri Tipleri
Değişkenler, programlarımızda verileri depolamak için kullandığımız adlandırılmış bellek konumlarıdır. Bir değişkene değer atamak için atama operatörü (=) kullanılır. Python'da değişken tanımlarken veri tipini belirtmenize gerek yoktur; Python bunu otomatik olarak algılar (dinamik tiplendirme).
# Değişken tanımlama örnekleri
isim = "Ayşe" # String (metin)
yaş = 30 # Integer (tam sayı)
boy = 1.75 # Float (ondalıklı sayı)
mezun_mu = True # Boolean (Doğru/Yanlış)
print(isim)
print(yaş)
print(boy)
print(mezun_mu)
Python'da birçok farklı veri tipi bulunur. İşte en sık kullanılanları:
- Sayılar:
int: Tam sayılar (örn: 10, -5, 0)float: Ondalıklı sayılar (örn: 3.14, -0.5, 2.0)
- Dizeler (
str): Metin verileri. Tek tırnak veya çift tırnak arasına yazılır (örn: "Merhaba", 'Python'). - Boolean (
bool): Mantıksal değerler. SadeceTrue(Doğru) veyaFalse(Yanlış) olabilir. Koşullu ifadelerde sıkça kullanılır. - Listeler (
list): Sıralı, değiştirilebilir (mutable) ve farklı veri tiplerini içerebilen koleksiyonlardır. Köşeli parantezlerle[]tanımlanır. - Tuple'lar (
tuple): Sıralı, değiştirilemez (immutable) koleksiyonlardır. Parantezlerle()tanımlanır. - Sözlükler (
dict): Anahtar-değer çiftleri halinde veri depolayan, sırasız ve değiştirilebilir koleksiyonlardır. Süslü parantezlerle{}tanımlanır. - Kümeler (
set): Sırasız, tekrarlamayan elemanlardan oluşan koleksiyonlardır. Süslü parantezlerle{}tanımlanır (boş küme içinset()).
Bu veri tiplerini anlamak, karmaşık veri yapılarını oluşturmak ve manipüle etmek için kritik öneme sahiptir. Özellikle listeler ve sözlükler, Python'da veri işlemede en çok kullanılan yapılardandır. Öğrenim sürecinizde bu koleksiyonları yakından tanımanız, programlama yeteneklerinizi büyük ölçüde geliştirecektir.
Operatörler: Verilerle İşlem Yapma
Operatörler, değişkenler ve değerler üzerinde işlemler yapmak için kullanılan sembollerdir. Python'da birçok farklı operatör türü bulunur:
- Aritmetik Operatörler: Matematiksel işlemler için kullanılır (+, -, *, /, %, **, //).
- Karşılaştırma Operatörleri: İki değeri karşılaştırır ve
TrueveyaFalsedöndürür (==, !=, >, =, <=). - Mantıksal Operatörler: Koşulları birleştirmek için kullanılır (
and,or,not). - Atama Operatörleri: Değer atamak için kullanılır (=, +=, -=, *=, /=, vb.).
# Aritmetik operatör örnekleri
sayi1 = 10
sayi2 = 3
toplam = sayi1 + sayi2 # 13
fark = sayi1 - sayi2 # 7
çarpım = sayi1 * sayi2 # 30
bölüm = sayi1 / sayi2 # 3.333...
kalan = sayi1 % sayi2 # 1
üs = sayi1 ** sayi2 # 1000
tam_bölüm = sayi1 // sayi2 # 3
# Karşılaştırma operatör örnekleri
print(sayi1 == sayi2) # False
print(sayi1 > sayi2) # True
# Mantıksal operatör örnekleri
x = True
y = False
print(x and y) # False
print(x or y) # True
print(not x) # False
Uygulama Örneği: Basit Bir Ürün Fiyatı Hesaplayıcı
Şimdi öğrendiklerimizi birleştirelim ve basit bir ürün fiyatı hesaplayıcı oluşturalım. Bu program, kullanıcıdan ürün adını, fiyatını ve KDV oranını alıp, KDV dahil toplam fiyatı hesaplayacak.
urun_adi = input("Ürün adını girin: ")
birim_fiyat = float(input("Birim fiyatı girin (örn: 25.50): "))
kdv_orani = float(input("KDV oranını yüzde olarak girin (örn: 18): "))
kdv_miktari = birim_fiyat * (kdv_orani / 100)
toplam_fiyat = birim_fiyat + kdv_miktari
print(f"\n--- Fiyat Detayları ---")
print(f"Ürün Adı: {urun_adi}")
print(f"Birim Fiyat: {birim_fiyat:.2f} TL")
print(f"KDV Oranı: %{kdv_orani:.0f}")
print(f"KDV Miktarı: {kdv_miktari:.2f} TL")
print(f"Toplam Fiyat (KDV Dahil): {toplam_fiyat:.2f} TL")
Bu örnekte input() fonksiyonu kullanıcıdan veri almak için, float() ise alınan metin verisini ondalıklı sayıya dönüştürmek için kullanıldı. Ayrıca, f-stringler (f"...") ile değişkenleri metin içine kolayca yerleştirdiğimizi ve : .2f gibi formatlamalarla ondalık sayıları düzenlediğimizi görebilirsiniz. Bu, Python'ın metin işleme konusundaki esnekliğini gösterir.
Kod Akışını Yönetme: Koşullu İfadeler ve Döngülerle Programlama Mantığı
Programlama sadece verileri depolamak ve işlem yapmakla sınırlı değildir; aynı zamanda belirli koşullara göre farklı işlemler yapmak ve tekrarlayan görevleri otomatikleştirmek de gerekir. İşte bu noktada koşullu ifadeler ve döngüler devreye girer. Bu yapılar, programınızın mantığını kontrol etmenizi ve daha dinamik, etkileşimli uygulamalar geliştirmenizi sağlar.
Koşullu İfadeler: if, elif, else
Koşullu ifadeler, programınızın belirli bir duruma göre farklı kod bloklarını çalıştırmasını sağlar. Python'da bu amaçla if, elif (else if) ve else anahtar kelimeleri kullanılır.
yaş = int(input("Yaşınızı girin: "))
if yaş >= 18:
print("Ehliyet alabilirsiniz.")
elif yaş >= 16:
print("Stajyer ehliyet için başvurabilirsiniz.")
else:
print("Ehliyet almak için henüz çok gençsiniz.")
Yukarıdaki örnekte, program kullanıcının yaşına göre farklı mesajlar gösterir. if bloğu ilk koşulu kontrol eder, eğer doğruysa içindeki kodu çalıştırır. Eğer if koşulu yanlışsa, elif bloğuna geçilir ve ikinci koşul kontrol edilir. Eğer bu da yanlışsa, else bloğu çalıştırılır. Python'da girintileme (indentation) çok önemlidir; kod bloklarının nerede başlayıp bittiğini belirtmek için kullanılır. Bu, dilin okunabilirliğini artıran temel özelliklerinden biridir.
Döngüler: Tekrarlayan Görevleri Otomatikleştirme
Döngüler, belirli bir kod bloğunu birden fazla kez çalıştırmanıza olanak tanır. Python'da iki ana döngü türü vardır: for döngüsü ve while döngüsü.
for Döngüsü
for döngüsü, bir dizi (liste, tuple, string vb.) üzerindeki her öğe için belirli bir kodu çalıştırmak veya belirli bir sayı aralığında işlem yapmak için kullanılır.
# Bir liste üzerindeki elemanları yazdırma
meyveler = ["elma", "muz", "kiraz"]
for meyve in meyveler:
print(meyve)
# Belirli bir sayı aralığında döngü
print("\n1'den 5'e kadar sayılar:")
for i in range(1, 6): # range(başlangıç, bitiş+1)
print(i)
range() fonksiyonu, belirli bir aralıkta sayılar üretmek için oldukça kullanışlıdır. range(5) 0'dan 4'e kadar sayıları üretirken, range(1, 6) 1'den 5'e kadar sayıları üretir. Bu, Python programlama öğrenme sürecinizin olmazsa olmazıdır.
while Döngüsü
while döngüsü, belirli bir koşul True olduğu sürece bir kod bloğunu çalıştırmaya devam eder. Dikkatli kullanılmazsa sonsuz döngülere neden olabilir, bu yüzden döngü içinde koşulu False yapacak bir mekanizma olmalıdır.
sayac = 0
while sayac < 5:
print(f"Sayaç değeri: {sayac}")
sayac += 1 # Sayacı artırarak döngünün bir noktada bitmesini sağlıyoruz
Bu örnekte, sayac 5'ten küçük olduğu sürece döngü devam eder. Her iterasyonda sayac bir artırılır ve sayac 5 olduğunda koşul False olur ve döngü sona erer. Bu kontrol mekanizması, while döngülerinin doğru çalışması için hayati öneme sahiptir.
Döngü Kontrol İfadeleri: break, continue, pass
break: Döngüyü tamamen sonlandırır ve döngüden sonraki koda geçer.continue: Mevcut iterasyonu atlar ve döngünün bir sonraki iterasyonuna geçer.pass: Hiçbir şey yapmaz. Boş bir kod bloğu gerektiğinde yer tutucu olarak kullanılır.
for i in range(10):
if i == 3:
continue # 3'ü atlar
if i == 7:
break # 7'de döngüyü bitirir
print(i) # Çıktı: 0, 1, 2, 4, 5, 6
Vaka Analizi: Öğrenci Not Sistemi
Bir okulda öğrencilerin sınav notlarını yöneten bir sistem geliştirelim. Bu sistem, her öğrencinin üç sınav notunu alacak, ortalamasını hesaplayacak ve geçip geçmediğini belirleyecek.
ogrenci_sayisi = int(input("Kaç öğrencinin notunu gireceksiniz? "))
gecenler = 0
kalanlar = 0
for i in range(ogrenci_sayisi):
print(f"\n--- Öğrenci {i+1} ---")
ad = input("Öğrencinin adını girin: ")
sınav1 = float(input("1. sınav notunu girin: "))
sınav2 = float(input("2. sınav notunu girin: "))
sınav3 = float(input("3. sınav notunu girin: "))
ortalama = (sınav1 + sınav2 + sınav3) / 3
print(f"{ad}'in not ortalaması: {ortalama:.2f}")
if ortalama >= 50:
print(f"{ad} dersi GEÇTİ!")
gecenler += 1
else:
print(f"{ad} dersi KALDI.")
kalanlar += 1
print(f"\n--- Genel Sonuçlar ---")
print(f"Geçen öğrenci sayısı: {gecenler}")
print(f"Kalan öğrenci sayısı: {kalanlar}")
Bu örnekte for döngüsü, belirli sayıda öğrenci için not girişini tekrarlıyor. Her öğrenci için if-else koşullu ifadeleri kullanılarak ortalama hesaplanıyor ve geçme/kalma durumu belirleniyor. Ayrıca, gecenler ve kalanlar değişkenleri ile genel istatistikler tutuluyor. Bu tür bir senaryo, koşullu ifadelerin ve döngülerin gerçek dünya problemlerini çözmek için nasıl bir araya geldiğini açıkça göstermektedir.
sum(), len(), min(), max()) veya list comprehension gibi yapıları kullanarak kodunuzu daha verimli hale getirebilirsiniz. Gerekmedikçe karmaşık iç içe döngülerden kaçınmak, performansı %20-30 oranında artırabilir.
Fonksiyonlar, Modüller ve Nesne Tabanlı Programlama (OOP): Kodunuzu Daha Verimli Hale Getirme
Büyük ve karmaşık programlar yazarken, kodumuzu düzenli, anlaşılır ve yeniden kullanılabilir hale getirmek büyük önem taşır. Bu noktada fonksiyonlar, modüller ve nesne tabanlı programlama (OOP) gibi kavramlar devreye girer. Bu yapılar sayesinde kodumuzu parçalara ayırabilir, her bir parçanın belirli bir görevi yerine getirmesini sağlayabilir ve böylece hem hata ayıklamayı kolaylaştırabilir hem de geliştirme sürecini hızlandırabiliriz.
Fonksiyonlar: Tekrar Etme, Yeniden Kullan
Fonksiyonlar, belirli bir görevi yerine getiren ve programın farklı yerlerinden çağrılabilen kod bloklarıdır. Python'da bir fonksiyonu def anahtar kelimesiyle tanımlarız.
# Parametre almayan ve değer döndürmeyen basit bir fonksiyon
def merhaba_yaz():
print("Merhaba, Python dünyasına hoş geldiniz!")
merhaba_yaz() # Fonksiyonu çağırma
# Parametre alan ve değer döndüren bir fonksiyon
def kare_hesapla(sayi):
return sayi * sayi
sonuc = kare_hesapla(5)
print(f"5'in karesi: {sonuc}")
# Birden fazla parametre ve varsayılan değerler
def selamla(isim, mesaj="Nasılsın?"):
print(f"Merhaba {isim}, {mesaj}")
selamla("Ahmet") # Çıktı: Merhaba Ahmet, Nasılsın?
selamla("Ayşe", "İyi günler!") # Çıktı: Merhaba Ayşe, İyi günler!
Fonksiyonlar, kod tekrarını önler (DRY - Don't Repeat Yourself prensibi) ve kodunuzu daha modüler hale getirir. Fonksiyonlara parametreler (sayi, isim, mesaj) gönderebilir ve bu fonksiyonlardan bir değer (return anahtar kelimesiyle) döndürebilirsiniz. Bu, karmaşık hesaplamaları veya iş mantığını tek bir yerde tutmanızı sağlar, böylece kodunuz daha temiz ve yönetilebilir olur.
Modüller ve Paketler: Kod Kütüphaneleri
Python'ın gücünün önemli bir kısmı, zengin modül ve paket ekosisteminden gelir. Modüller, Python kodunu içeren .py uzantılı dosyalardır ve ilgili fonksiyonları, sınıfları veya değişkenleri bir araya getirir. Paketler ise birden fazla modülü içeren dizinlerdir.
# math modülünü içe aktarma ve kullanma
import math
print(f"Pi sayısı: {math.pi}")
print(f"16'nın karekökü: {math.sqrt(16)}")
# Kendi modülünüzü oluşturma (örneğin, my_calculations.py adında bir dosya)
# my_calculations.py içeriği:
# def topla(a, b):
# return a + b
#
# def çıkar(a, b):
# return a - b
# Ana programda kendi modülünüzü kullanma
# import my_calculations
# print(my_calculations.topla(10, 5)) # 15
pip, Python paket yöneticisidir ve PyPI (Python Package Index) üzerinde barındırılan binlerce üçüncü taraf paketi (kütüphaneyi) kurmanıza olanak tanır. Örneğin, veri analizi için Pandas, web geliştirme için Django veya Flask gibi popüler kütüphaneleri pip install pandas komutuyla kolayca kurabilirsiniz.
Sanal Ortamlar (venv)
Farklı Python projelerinizin farklı kütüphane sürümlerine ihtiyaç duyması durumunda çakışmaları önlemek için sanal ortamlar kullanılır. Sanal ortam (virtual environment), her proje için izole edilmiş bir Python ortamı oluşturur. Böylece bir projenin bağımlılıkları diğer projeleri etkilemez.
# Sanal ortam oluşturma
# python -m venv myenv
# Sanal ortamı etkinleştirme (Windows)
# .\myenv\Scripts\activate
# Sanal ortamı etkinleştirme (macOS/Linux)
# source myenv/bin/activate
# Etkin ortamda paket kurma
# pip install requests
# Sanal ortamı devre dışı bırakma
# deactivate
Sanal ortamlar, özellikle profesyonel Python geliştirme projelerinde standart bir uygulamadır ve her Python geliştiricisinin bilmesi gereken önemli bir araçtır.
Nesne Tabanlı Programlama (OOP) Temelleri
Nesne Tabanlı Programlama (OOP), gerçek dünyadaki nesneleri modelleyerek programlar oluşturma yaklaşımıdır. Python, tam anlamıyla nesne yönelimli bir dildir. OOP'nin temel kavramları şunlardır:
- Sınıf (
class): Nesneler için bir şablondur. Nitelikleri (veri) ve metotları (davranış) tanımlar. - Nesne (
object): Bir sınıfın somutlaştırılmış halidir. Sınıftan oluşturulan bir örnektir. - Nitelikler (Attributes): Bir nesnenin özellikleridir (örn: bir arabanın rengi, markası).
- Metotlar (Methods): Bir nesnenin gerçekleştirebileceği eylemlerdir (örn: bir arabanın hızlanması, fren yapması).
- Miras (Inheritance): Bir sınıfın (alt sınıf) başka bir sınıfın (üst sınıf) niteliklerini ve metotlarını devralmasıdır. Kodun yeniden kullanılabilirliğini artırır.
# Bir Sınıf Tanımlama
class Araba:
# Yapıcı (Constructor) metot
def __init__(self, marka, model, renk):
self.marka = marka
self.model = model
self.renk = renk
self.hiz = 0
# Metotlar
def hızlan(self, miktar):
self.hiz += miktar
print(f"{self.marka} {self.model} hızlanıyor, mevcut hız: {self.hiz} km/s")
def fren_yap(self):
self.hiz = 0
print(f"{self.marka} {self.model} durdu.")
# Nesne Oluşturma (sınıfın örneği)
arabam = Araba("Toyota", "Corolla", "Mavi")
senin_araban = Araba("Ford", "Focus", "Kırmızı")
# Niteliklere erişim
print(f"Benim arabam: {arabam.marka} {arabam.model}, Renk: {arabam.renk}")
# Metotları çağırma
arabam.hızlan(50)
arabam.hızlan(30)
arabam.fren_yap()
OOP, karmaşık sistemleri daha anlaşılır ve yönetilebilir parçalara ayırarak programlamayı kolaylaştırır. Özellikle büyük ölçekli uygulamalar geliştirirken veya bir ekip içinde çalışırken OOP prensipleri hayati öneme sahiptir. Nesneler arası etkileşimi modelleyerek gerçek dünya problemlerine daha uygun çözümler üretebilirsiniz.
Uygulama Örneği: Basit Bir Banka Hesabı Yönetim Sistemi (OOP ile)
OOP prensiplerini kullanarak basit bir banka hesabı sınıfı oluşturalım. Bu sınıf, hesap sahibinin adını, hesap numarasını ve bakiyesini tutacak, para yatırma ve çekme işlemleri yapacak metotlara sahip olacak.
class BankaHesabi:
def __init__(self, hesap_sahibi, hesap_no, bakiye=0):
self.hesap_sahibi = hesap_sahibi
self.hesap_no = hesap_no
self.bakiye = bakiye
print(f"Hesap oluşturuldu: {self.hesap_sahibi} | Hesap No: {self.hesap_no} | Bakiye: {self.bakiye} TL")
def para_yatir(self, miktar):
if miktar > 0:
self.bakiye += miktar
print(f"{miktar} TL yatırıldı. Yeni bakiye: {self.bakiye} TL")
else:
print("Yatırılacak miktar pozitif olmalıdır.")
def para_cek(self, miktar):
if miktar > self.bakiye:
print("Yetersiz bakiye!")
elif miktar <= 0:
print("Çekilecek miktar pozitif olmalıdır.")
else:
self.bakiye -= miktar
print(f"{miktar} TL çekildi. Yeni bakiye: {self.bakiye} TL")
def bakiye_sorgula(self):
print(f"Hesap No: {self.hesap_no} | Hesap Sahibi: {self.hesap_sahibi} | Güncel Bakiye: {self.bakiye} TL")
# Hesaplarımızı oluşturalım
hesap1 = BankaHesabi("Elif Yılmaz", "TR123456789", 1000)
hesap2 = BankaHesabi("Mehmet Demir", "TR987654321")
print("\n--- Hesap İşlemleri ---")
hesap1.para_yatir(500)
hesap1.para_cek(200)
hesap1.bakiye_sorgula()
hesap2.para_yatir(300)
hesap2.para_cek(1000) # Yetersiz bakiye örneği
hesap2.bakiye_sorgula()
Bu basit sistemde, BankaHesabi sınıfı, her bir banka hesabının nasıl davranacağını tanımlıyor. Her oluşturduğumuz hesap1 ve hesap2 ise bu sınıfın birer nesnesi, yani somut birer banka hesabı örneği. Bu yapı, gerçek dünyadaki karmaşık finansal sistemlerin temelini oluşturabilir ve kodunuzun düzenli ve genişletilebilir kalmasını sağlar.
Hata Ayıklama (try-except) ve Dosya İşlemleri
Programlar her zaman beklendiği gibi çalışmaz. Hatalar (istisnalar) ortaya çıkabilir. Python'da bu hataları yönetmek için try-except blokları kullanılır. Ayrıca, dosyalarla çalışmak da birçok uygulama için temel bir gereksinimdir.
# Hata Ayıklama Örneği
try:
sayi = int(input("Bir sayı girin: "))
sonuc = 10 / sayi
print(f"Sonuç: {sonuc}")
except ValueError:
print("Geçerli bir sayı girmediniz.")
except ZeroDivisionError:
print("Sıfıra bölme hatası!")
except Exception as e:
print(f"Beklenmeyen bir hata oluştu: {e}")
finally:
print("İşlem tamamlandı.")
# Dosya İşlemleri Örneği (okuma ve yazma)
dosya_adı = "notlar.txt"
# Dosyaya yazma
with open(dosya_adı, "w", encoding="utf-8") as dosya:
dosya.write("Python öğreniyorum.\n")
dosya.write("Bu harika bir dil!\n")
print(f"'{dosya_adı}' dosyasına yazma işlemi tamamlandı.")
# Dosyadan okuma
with open(dosya_adı, "r", encoding="utf-8") as dosya:
icerik = dosya.read()
print(f"\n'{dosya_adı}' dosyasının içeriği:\n{icerik}")
try bloğu içinde hata potansiyeli olan kodu tutarız. Eğer bir hata oluşursa, ilgili except bloğu çalışır. finally bloğu ise hata olsun ya da olmasın her zaman çalışır. Dosya işlemleri için with open(...) yapısını kullanmak, dosyanın işiniz bittikten sonra otomatik olarak kapatılmasını sağlar, bu da kaynak yönetimini kolaylaştırır.
Python ile İleri Düzey Uygulamalar ve Gerçek Dünya Senaryoları: Geleceğe Yönelik İpuçları
Temel Python kavramlarına hakim olduktan sonra, bu güçlü dilin gerçek dünyadaki potansiyelini keşfetme zamanı gelir. Python, sadece basit scriptler yazmakla kalmaz, aynı zamanda web uygulamaları geliştirmekten, karmaşık veri analizi yapmaya, yapay zeka modelleri oluşturmaya ve günlük görevleri otomatikleştirmeye kadar birçok alanda kullanılır. İşte Python'ın daha ileri düzey kullanım alanları ve geleceğe yönelik ipuçları.
Web Geliştirme: Flask ve Django
Python, web geliştirme için popüler iki büyük framework'e sahiptir: Flask ve Django. Django, büyük ve karmaşık web uygulamaları için "pil paketiyle birlikte gelir" yaklaşımını benimseyen tam teşekküllü bir framework'tür. Veritabanı entegrasyonu, admin paneli ve ORM (Object-Relational Mapping) gibi birçok özelliği içinde barındırır. Flask ise daha hafif ve esnek bir mikro framework'tür; küçük projeler ve API'ler geliştirmek için idealdir, projenize istediğiniz kütüphaneleri entegre etme özgürlüğü sunar.
# Flask ile basit bir web uygulaması örneği
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Merhaba, Python ile Web!'
if __name__ == '__main__':
app.run(debug=True)
Bu kodu çalıştırdığınızda (önce pip install Flask ile Flask'ı kurmanız gerekir), tarayıcınızdan http://127.0.0.1:5000/ adresine giderek "Merhaba, Python ile Web!" yazısını görebilirsiniz. Python, web uygulamaları geliştirme sürecini basitleştirerek dinamik ve etkileşimli siteler oluşturmanıza olanak tanır. Ayrıca, web arayüzlerinin modern standartlara uygun, yani mobil uyumlu olması da artık bir zorunluluktur. Python ile web arayüzü sunarken, HTML ve CSS'i de etkin kullanmak gerekir. Örneğin, etiketi ve CSS media query'leri mobil uyumluluk için temel taşlardır.
Bu HTML ve CSS örnekleri, Python tabanlı bir web uygulamasının kullanıcı arayüzünü oluştururken mobil cihazlara uyum sağlamak için nasıl yapılandırabileceğinizi göstermektedir. Python, sunucu tarafı mantığını sağlarken, frontend için HTML, CSS ve JavaScript kullanılır.
Veri Analizi ve Bilimi: Pandas ve NumPy
Python, veri analizi ve makine öğrenmesi alanında tartışmasız lider dillerden biridir. Pandas kütüphanesi, tablo verileriyle (Excel tabloları gibi) çalışmak için güçlü DataFrame yapıları sunar. NumPy ise yüksek performanslı sayısal hesaplamalar ve çok boyutlu diziler (matrisler) için temel sağlar. Bu kütüphanelerle büyük veri kümelerini temizleyebilir, dönüştürebilir, analiz edebilir ve görselleştirebilirsiniz.
# Pandas ve NumPy ile basit veri analizi örneği
import pandas as pd
import numpy as np
# Örnek bir DataFrame oluşturma
data = {'Mevsim': ['Yaz', 'Kış', 'Bahar', 'Sonbahar', 'Yaz', 'Kış'],
'Sıcaklık': [30, 5, 15, 10, 32, 3],
'Nem': [70, 85, 60, 75, 68, 88]}
df = pd.DataFrame(data)
print("Oluşturulan DataFrame:")
print(df)
# Ortalama sıcaklığı hesaplama
ortalama_sicaklik = df['Sıcaklık'].mean()
print(f"\nOrtalama Sıcaklık: {ortalama_sicaklik:.2f}°C")
# En sıcak mevsimi bulma
en_sicak_mevsim = df.loc[df['Sıcaklık'].idxmax()]
print(f"\nEn sıcak mevsim: {en_sicak_mevsim['Mevsim']} ({en_sicak_mevsim['Sıcaklık']}°C)")
Pandas ve NumPy gibi kütüphaneler sayesinde Python, veri bilimcilerin ve analistlerin karmaşık problemleri çözmek için başvurduğu ilk araçlardan biri haline gelmiştir. Bu ekosistem, veri manipülasyonu, istatistiksel analiz ve makine öğrenimi modellerinin geliştirilmesi için benzersiz yetenekler sunar.
Otomasyon ve Scripting
Python, tekrarlayan görevleri otomatikleştirmek için mükemmel bir araçtır. Dosya sistemi işlemleri (dosya kopyalama, taşıma, silme), e-posta gönderme, web sitelerinden veri çekme (web scraping), PDF dosyalarını işleme gibi birçok günlük görevi Python scriptleriyle otomatik hale getirebilirsiniz. Bu, zaman kazandırır ve insan hatalarını azaltır.
Performans Optimizasyonu İpuçları
Python'ın yorumlanabilir bir dil olması nedeniyle bazı durumlarda C++ veya Java gibi derlenmiş dillere göre daha yavaş olabilir. Ancak, performansı artırmak için kullanabileceğiniz birçok teknik vardır:
- Algoritma Optimizasyonu: En büyük performans kazancı genellikle daha iyi bir algoritma seçmekten gelir.
- Veri Yapısı Seçimi: Doğru veri yapısını kullanmak (örneğin, listeler yerine kümeler veya sözlükler) işlemleri hızlandırabilir.
- Yerleşik Fonksiyonlar: Python'ın yerleşik fonksiyonları (C ile yazıldığı için) genellikle kendi yazdığınız döngülerden daha hızlıdır.
- List Comprehension: Döngülere göre daha hızlı ve okunabilir listeler oluşturur.
- Kütüphaneler: Performans kritik görevler için NumPy gibi optimize edilmiş C tabanlı kütüphaneler kullanın.
- C Profiling: Kodunuzun darboğazlarını bulmak için
cProfilegibi araçları kullanın.
Vaka Analizi: Bir Web Sitesinden Veri Çekme (Web Scraping)
Diyelim ki belirli bir e-ticaret sitesindeki ürün fiyatlarını düzenli olarak takip etmek istiyorsunuz. Python'ın requests kütüphanesi ile web sayfalarının içeriğini çekebilir, BeautifulSoup kütüphanesi ile de bu HTML içeriğini ayrıştırarak istediğiniz verileri alabilirsiniz. Bu işlem web scraping olarak adlandırılır.
# Web scraping için basit bir örnek
# Önce pip install requests beautifulsoup4 komutunu çalıştırın
import requests
from bs4 import BeautifulSoup
url = "https://www.örneksite.com/ürünler" # Gerçek bir site URL'si ile değiştirin
try:
response = requests.get(url)
response.raise_for_status() # HTTP hataları için kontrol
soup = BeautifulSoup(response.text, 'html.parser')
# Örnek: Tüm ürün başlıklarını çekme (gerçek siteye göre seçici değişir)
urun_basliklari = soup.find_all('h2', class_='product-title')
print("--- Ürün Başlıkları ---")
if urun_basliklari:
for baslik in urun_basliklari:
print(baslik.get_text(strip=True))
else:
print("Ürün başlıkları bulunamadı veya seçici yanlış.")
except requests.exceptions.RequestException as e:
print(f"Web sitesine erişirken hata oluştu: {e}")
except Exception as e:
print(f"Veri çekerken bir hata oluştu: {e}")
Bu örnek, Python'ın internet üzerinden veri toplama ve işleme yeteneğini göstermektedir. Ancak web scraping yaparken her zaman ilgili sitenin kullanım koşullarını ve yasal düzenlemeleri göz önünde bulundurmak önemlidir. Bu, Python'ın veri toplama ve otomasyon alanındaki gücünü ortaya koyan somut bir kullanım senaryosudur.
Sıkça Sorulan Sorular ve Sonuç: Python Öğrenim Yolculuğunuzda Bir Sonraki Adım
Python, esnekliği, güçlü kütüphane ekosistemi ve geniş topluluk desteği sayesinde günümüzün en popüler ve etkili programlama dillerinden biridir. Bu rehberde, Python'ın temel yapı taşlarından başlayarak, kod akışını yönetme, fonksiyonlar ve nesne tabanlı programlama gibi orta seviye konulara değindik. Ayrıca, web geliştirme, veri analizi ve otomasyon gibi gerçek dünya uygulamalarına yönelik ileri düzey ipuçları ve vaka analizleri sunduk. Python öğrenmek, sadece bir programlama dili öğrenmekten öte, problem çözme yeteneğinizi geliştirmek ve dijital dünyada sonsuz fırsatlara kapı aralamak demektir.
Python öğrenim yolculuğunuz, bu rehberle başlamış olabilir, ancak asıl öğrenme süreci pratik yapmakla devam edecektir. Bolca kod yazın, küçük projeler geliştirin, açık kaynak projelere katkıda bulunun ve Python topluluğuyla etkileşimde kalın. Unutmayın, en iyi öğrenme yöntemi yaparak öğrenmektir.
Sıkça Sorulan Sorular (SSS)
- Python öğrenmek ne kadar sürer?
- Temel kavramları öğrenmek birkaç hafta veya ay sürebilirken, Python'da uzmanlaşmak yıllar alabilir. Öğrenme süresi, harcadığınız zaman, motivasyonunuz ve önceki programlama deneyiminize bağlı olarak değişir. Günde birkaç saat pratik yaparak 3-6 ay içinde sağlam bir temel oluşturabilirsiniz.
- Python ile hangi tür projeler yapabilirim?
- Python ile web uygulamaları (Django, Flask), veri analizi ve görselleştirme (Pandas, Matplotlib), makine öğrenmesi ve yapay zeka (Scikit-learn, TensorFlow), otomasyon scriptleri, oyun geliştirme (Pygame) ve masaüstü uygulamaları (PyQt, Tkinter) gibi çok çeşitli projeler geliştirebilirsiniz.
- Python için en iyi öğrenme kaynakları nelerdir?
- Resmi Python belgeleri (docs.python.org), Codecademy, freeCodeCamp, Udemy ve Coursera gibi platformlardaki çevrimiçi kurslar, "Automate the Boring Stuff with Python" gibi kitaplar ve Stack Overflow gibi topluluk forumları harika kaynaklardır. En önemlisi, öğrendiklerinizi pratikle pekiştirmektir.
- Python'da hata ayıklama nasıl yapılır?
- Python'da hataları ayıklamak için
print()fonksiyonunu kullanarak değişken değerlerini kontrol edebilir, IDE'lerin (VS Code, PyCharm) entegre hata ayıklayıcılarını kullanabilir veyapdbgibi yerleşik hata ayıklama modüllerini kullanabilirsiniz.try-exceptblokları da run-time hatalarını yönetmek için kritik öneme sahiptir. - Sanal ortamlar neden önemlidir?
- Sanal ortamlar (virtual environments), her Python projesi için izole bir ortam oluşturur. Bu, farklı projelerin farklı kütüphane sürümlerine bağımlı olması durumunda oluşabilecek bağımlılık çakışmalarını önler. Her projenin kendi bağımsız paket setine sahip olmasını sağlayarak proje yönetimini ve taşınabilirliğini kolaylaştırır.
Python öğrenmek, modern teknoloji dünyasında kendinize sağlam bir yer edinmek için atabileceğiniz en değerli adımlardan biridir. Bu rehberin, bu heyecan verici yolculuğunuzda size ilham vermesini ve yol göstermesini umuyoruz. Başarılar dileriz!
