Python

print("Merhaba, Python!")

Python Nedir, Neden Tercih Edilir?

Python, Guido van Rossum tarafından 90'lı yılların başında geliştirilen yüksek seviyeli ve genel amaçlı bir programlama dilidir. Sade ve okunması kolay bir sözdizime sahip olduğu için yeni başlayanlar tarafından tercih edilir.

Python yorumlayıcı bir dil olduğundan (compiled olmaksızın) doğrudan kod çalıştırılabilir, bu da geliştirme sürecini hızlandırır. Ayrıca Python, C ve C++ gibi dillere göre derleme aşaması olmadığı için hızlıca sonuç almayı sağlar.

💡 Pro İpucu: Python kodunuzu yazmadan önce python --version komutuyla hangi sürümü kullandığınızı kontrol edin. Python 3.x serisi önerilir.
Python'un Avantajları:
  • • Açık kaynak ve ücretsiz
  • • Büyük geliştirici topluluğu
  • • Çapraz platform uyumluluğu
  • • Zengin standart kütüphane
  • • Veri bilimi, AI/ML, web geliştirme desteği
Tarihçe
Python'un adı, Monty Python's Flying Circus adlı İngiliz komedi grubundan gelir. Guido van Rossum bu ismi seçerken eğlenceli ve kısa bir isim istemiştir.

Google, Facebook, NASA ve CERN gibi büyük kuruluşlar projelerinde Python'u tercih etmektedir. Python'un temiz girintili (indentli) sözdizimi sayesinde kod okunabilirliği artmıştır.

İlk Kod: Merhaba Dünya

Python'da ilk kod olarak ekrana bir metin yazdırma örneği genellikle "Merhaba Dünya" ile başlar. Bunu yapmak için print() fonksiyonunu kullanırız:

print("Merhaba Dünya")
Merhaba Dünya
Çalıştırma İpucu
Bu kodu çalıştırmak için: python dosya_adi.py veya Python IDLE'da F5 tuşuna basın.

print() fonksiyonu içine yazdığınız ifadeyi ekrana bastırır. Burada "Merhaba Dünya" bir metin (string) olduğu için çift tırnak içinde yazıldı. Bu basit örnek, Python'da kod yazmanın ne kadar hızlı ve kolay olduğunu gösterir.

Dikkat: Python 2'de print "Merhaba" şeklinde yazılırken, Python 3'te mutlaka parantez kullanılmalıdır: print("Merhaba")

Değişkenler ve Veri Tipleri

Python'da değişkenler, verileri bellekte saklamak için kullandığımız isimlendirilmiş konumlardır. Python dinamik tipli bir dil olduğu için değişken tanımlarken veri tipini önceden belirtmenize gerek yoktur.

x = 5                # integer
y = 3.14             # float
isim = "Ayşe"        # string
aktif = True         # boolean
💡 Pro İpucu: Değişken isimlerinde Türkçe karakter kullanmaktan kaçının. isim yerine name, yaş yerine age kullanın. Bu uluslararası projelerde uyumluluk sağlar.

Python'da Yaygın Veri Tipleri:

  • int: Tam sayılar (5, -3, 0)
  • float: Ondalıklı sayılar (3.14, -0.001)
  • str: Metin/string ("Merhaba", 'Python')
  • bool: Mantıksal değerler (True, False)
  • list: Sıralı diziler ([1, 2, 3])
  • tuple: Değiştirilemez diziler ((10, 20))
  • dict: Anahtar-değer çiftleri ({"ad": "Ali"})
  • set: Benzersiz öğeler ({1, 2, 3})
Değişken İsimlendirme Kuralları
• Harfle veya _ ile başlamalı (sayı ile başlayamaz)
• Sadece harf, sayı ve _ içerebilir
• Büyük-küçük harf duyarlı (age ≠ Age)
• Python anahtar kelimeleri kullanılamaz (if, for, class vb.)
z = 10              # z şu anda int
print(type(z))    # <class 'int'>

z = "Merhaba"
print(type(z))    # <class 'str'>

Koşullu İfadeler (if-else)

Python'da koşullu ifadeler, belirli bir şartın sağlanıp sağlanmamasına bağlı olarak farklı kod bloklarının çalışmasını sağlar. Temel olarak if ve else blokları kullanılır.

sayi = 5

if sayi > 0:
    print("Sayı pozitif")
else:
    print("Sayı sıfır veya negatif")
Girinti (Indentation) Önemli! Python'da kod blokları süslü parantez {} yerine girinti ile belirlenir. Standart olarak 4 boşluk kullanılır.

Birden çok durumu kontrol etmek için elif (else if) kullanılabilir:

sayi = 0

if sayi > 0:
    print("Pozitif")
elif sayi == 0:
    print("Sıfır")
else:
    print("Negatif")
Sıfır
Karşılaştırma Operatörleri
== eşittir, != eşit değil, > büyük, < küçük, >= büyük eşit, <= küçük eşit
and, or, not mantıksal operatörler

Döngüler (for, while)

Döngüler, bir işlemi birden çok kez tekrar etmek için kullanılır. Python'da en yaygın döngüler for ve while döngüleridir.

For Döngüsü:

for i in range(3):
    print(i)
0 1 2
💡 Pro İpucu: range(start, stop, step) fonksiyonu ile daha esnek döngüler oluşturabilirsiniz:
range(1, 10, 2) → 1, 3, 5, 7, 9
Liste Üzerinde Döngü
for item in [1, 2, 3, 4]: print(item)
for char in "Python": print(char) - String karakterleri üzerinde

While Döngüsü:

n = 3
while n > 0:
    print(n)
    n -= 1
3 2 1
Sonsuz Döngü Riskı! While döngülerinde koşulun bir noktada False olacağından emin olun. Aksi takdirde program sonsuza kadar çalışır.

Fonksiyonlar (def)

Fonksiyonlar, belirli bir işi yapan kod bloklarıdır. Python'da fonksiyon tanımlamak için def anahtar kelimesi kullanılır. Fonksiyonlar, tekrarlanan kodu bir arada tutarak yeniden kullanılmasını sağlar.

def selam_ver(isim):
    print("Merhaba", isim)

selam_ver("Ahmet")
Merhaba Ahmet
Fonksiyon Parametreleri
Varsayılan parametre: def selam(isim="Misafir"): ...
Çoklu parametre: def topla(a, b, c): ...
Sınırsız parametre: def topla(*args): ...

Fonksiyonlar değer döndürebilir (return ile):

def topla(a, b):
    return a + b

sonuc = topla(4, 5)
print(sonuc)
9
💡 Pro İpucu: Fonksiyonlarınıza docstring ekleyin:
"""Bu fonksiyon iki sayıyı toplar.""" - Üçlü tırnak içinde açıklama

Sınıflar (class) ve OOP Giriş

Python'da sınıflar (class), nesne yönelimli programlamanın temel yapı taşlarıdır. Sınıflar, ortak özelliklere ve işlevlere sahip nesneler oluşturmak için şablon görevi görür.

class Araba:
    def __init__(self, renk, hiz):
        self.renk = renk
        self.hiz = hiz

    def bilgileri_goster(self):
        print(f"Renk: {self.renk}, Hız: {self.hiz}")

# Araba sınıfından bir nesne oluşturalım
araba1 = Araba("Kırmızı", 120)
araba1.bilgileri_goster()
Renk: Kırmızı, Hız: 120
OOP Temel Kavramları:
  • Sınıf (Class): Nesne şablonu
  • Nesne (Object): Sınıftan oluşturulan örnek
  • Özellik (Attribute): Nesnenin veri alanları
  • Metod (Method): Nesnenin fonksiyonları
  • __init__: Yapıcı metod (constructor)
self Parametresi
self parametresi, nesnenin kendisine referans verir. Her metotta ilk parametre olarak yer alır ama çağırırken gönderilmez.

Sınıflar sayesinde benzer özelliklere sahip nesneleri kolayca tanımlayıp bir arada tutabilir ve daha karmaşık projelerde kodun organizasyonunu güçlendirebilirsiniz.

NumPy ile Temel Dizi İşlemleri

NumPy, "Numerical Python" anlamına gelen ve sayısal hesaplamalar için geliştirilmiş güçlü bir kütüphanedir. NumPy, ndarray adı verilen çok boyutlu diziler ve bu diziler üzerinde etkili hesaplama yapmanızı sağlayan fonksiyonlar sunar.

💡 Kurulum: pip install numpy komutuyla kurabilirsiniz.
import numpy as np

# Tek boyutlu dizi
a = np.array([1, 2, 3, 4, 5])
print(a)
print(a.shape)     # Dizinin boyutu
print(a.dtype)     # Veri tipi
[1 2 3 4 5] (5,) int64
NumPy vs Python Listesi
NumPy dizileri Python listelerine göre çok daha hızlıdır çünkü C dilinde yazılmıştır ve bellek kullanımı daha verimlidir.

İki boyutlu dizi (matris) örneği:

b = np.array([[1, 2, 3],
              [4, 5, 6]])
print(b.shape)      # (2, 3)
print(b[1,2])      # 6

NumPy ile matematiksel işlemler:

c = np.array([10, 20, 30, 40, 50])
print(a + c)         # Eleman bazında toplama
print(a * 2)         # Skaler çarpma
print(np.sum(a))     # Toplam
print(np.mean(a))    # Ortalama
[11 22 33 44 55] [ 2 4 6 8 10] 15 3.0
Yararlı NumPy Fonksiyonları:
  • np.zeros(5) - Sıfırlardan oluşan dizi
  • np.ones(3) - Birlerden oluşan dizi
  • np.arange(0, 10, 2) - Aralıkla dizi
  • np.random.rand(3, 3) - Rastgele sayılar
  • np.max(a), np.min(a) - Min/Max

Pandas ile Veri Analizi Temelleri

Pandas, Python'da veri analizi ve manipülasyonu için geliştirilmiş güçlü bir kütüphanedir. Pandas, iki ana veri yapısı sunar: Series (tek boyutlu) ve DataFrame (iki boyutlu tablo).

💡 Kurulum: pip install pandas - NumPy'ı otomatik olarak kurar.
import pandas as pd

# DataFrame oluşturma
df = pd.DataFrame({
    "isim": ["Ali", "Ayşe", "Fatma"],
    "yas": [25, 30, 22],
    "maas": [5000, 6000, 5500]
})
print(df)
isim yas maas 0 Ali 25 5000 1 Ayşe 30 6000 2 Fatma 22 5500
Dosyadan Veri Okuma
df = pd.read_csv('dosya.csv') - CSV dosyası
df = pd.read_excel('dosya.xlsx') - Excel dosyası
df = pd.read_json('dosya.json') - JSON dosyası

Pandas ile temel işlemler:

# Belirli sütunu seçme
print(df["yas"])

# Filtreleme
print(df[df["yas"] > 25])

# Ortalama hesaplama
ortalama_yas = df["yas"].mean()
print(f"Ortalama yaş: {ortalama_yas}")
Temel Pandas İşlemleri:
  • df.head() - İlk 5 satır
  • df.info() - Veri hakkında bilgi
  • df.describe() - İstatistiksel özet
  • df.groupby('sütun') - Gruplandırma
  • df.sort_values('sütun') - Sıralama

Pandas, CSV, Excel gibi dosyalardan veri okumayı ve yazmayı da kolaylaştırır (pd.read_csv, pd.to_excel).

Matplotlib ile Veri Görselleştirme

Matplotlib, Python'da veri görselleştirme için kullanılan kapsamlı bir kütüphanedir. Statik grafikler, animasyonlar ve etkileşimli görseller oluşturmanıza olanak tanır.

💡 Kurulum: pip install matplotlib
import matplotlib.pyplot as plt

# Çizgi grafiği örneği
x = [1, 2, 3, 4]
y = [10, 20, 15, 30]

plt.plot(x, y, marker='o')
plt.title("Basit Çizgi Grafiği")
plt.xlabel("X Ekseni")
plt.ylabel("Y Ekseni")
plt.grid(True)
plt.show()
Grafik Özelleştirme
color='red', linewidth=2, linestyle='--'
marker='o', markersize=8, alpha=0.7 (şeffaflık)

Çubuk grafiği örneği:

kategoriler = ['A', 'B', 'C', 'D']
degerler = [23, 17, 35, 29]

plt.bar(kategoriler, degerler, color='skyblue')
plt.title("Çubuk Grafiği Örneği")
plt.xlabel("Kategori")
plt.ylabel("Değer")
plt.show()
Jupyter Notebook İpucu: Jupyter'da grafikleri görmek için %matplotlib inline komutunu kullanın.
Matplotlib ile oluşturulabilecek grafik türleri:
  • • Çizgi grafikleri (plot)
  • • Çubuk grafikleri (bar)
  • • Dağılım grafikleri (scatter)
  • • Histogram (hist)
  • • Pasta grafiği (pie)
  • • Kutu grafiği (boxplot)
Grafik Kaydetme
plt.savefig('grafik.png', dpi=300, bbox_inches='tight')
PNG, PDF, SVG formatlarını destekler. show() dan önce çağırın.

Flask ile Web Geliştirme

Flask, Python'da web uygulamaları geliştirmek için kullanılan hafif ve esnek bir web framework'üdür. "Microframework" olarak adlandırılır çünkü temel işlevselliği sağlar ve geliştiricinin ihtiyaçlarına göre genişletilebilir.

💡 Kurulum: pip install flask komutuyla kurabilirsiniz.
from flask import Flask

# Flask uygulaması oluşturma
app = Flask(__span class="string">__name__)

# Ana sayfa route'u
@app.route('/')
def ana_sayfa():
    return 'Merhaba Flask!'

# Dinamik route
@app.route('/kullanici/<isim>')
def kullanici(isim):
    return f'Merhaba {isim}!'

# Uygulamayı çalıştırma
if __name__ == '__main__':
    app.run(debug=True)
Çalıştırma
Kodu çalıştırdıktan sonra tarayıcıda http://127.0.0.1:5000 adresine giderek uygulamanızı görebilirsiniz.

HTML template kullanımı:

from flask import Flask, render_template

app = Flask(__span class="string">__name__)

@app.route('/')
def index():
    kullanici_adi = "Ahmet"
    yas = 25
    return render_template('index.html', 
                           kullanici=kullanici_adi, 
                           yas=yas)
Flask'ın Avantajları:
  • • Basit ve öğrenmesi kolay
  • • Esnek ve genişletilebilir
  • • Minimal boilerplate kod
  • • Güçlü template engine (Jinja2)
  • • RESTful API geliştirme desteği
# Form işleme örneği
from flask import Flask, request, redirect, url_for

@app.route('/giris', methods=['GET', 'POST'])
def giris():
    if request.method == 'POST':
        kullanici_adi = request.form['kullanici_adi']
        sifre = request.form['sifre']
        
        # Basit doğrulama
        if kullanici_adi == 'admin' and sifre == '123':
            return 'Giriş başarılı!'
        else:
            return 'Hatalı kullanıcı adı veya şifre'
    
    return '''
    <form method="post">
        Kullanıcı Adı: <input type="text" name="kullanici_adi"><br>
        Şifre: <input type="password" name="sifre"><br>
        <input type="submit" value="Giriş">
    </form>
    '
Güvenlik Notu: Gerçek uygulamalarda şifreleri düz metin olarak saklamayın. Hash'leme ve güvenli oturum yönetimi kullanın.
Proje Yapısı
Flask projesi için önerilen klasör yapısı:
myapp/
├── app.py (ana uygulama)
├── templates/ (HTML şablonları)
├── static/ (CSS, JS, resimler)
└── requirements.txt (bağımlılıklar)

Hata Ayıklama ve Geliştirme İpuçları

Python öğrenirken karşılaşacağınız yaygın hatalar ve bunları nasıl çözeceğiniz hakkında bilgiler:

Yaygın Hatalar:
• IndentationError - Girinti hatası
• SyntaxError - Sözdizimi hatası
• NameError - Tanımlanmamış değişken
• TypeError - Yanlış veri tipi kullanımı
💡 Hata Ayıklama İpuçları:
• Hata mesajlarını dikkatli okuyun
• print() ile değişken değerlerini kontrol edin
• Kodunuzu küçük parçalar halinde test edin
• IDE'nizin debugger özelliğini kullanın
Geliştirme Ortamları
Popüler Python IDE'leri:
• PyCharm - Profesyonel geliştirme
• VS Code - Hafif ve esnek
• Jupyter Notebook - Veri analizi için
• IDLE - Python ile birlikte gelir

Sonraki Adımlar ve İleri Konular

Python temellerini öğrendikten sonra hangi konulara odaklanabileceğiniz:

İleri Python Konuları:
  • List Comprehensions: [x**2 for x in range(10)]
  • Lambda Fonksiyonları: lambda x: x*2
  • Decorators: Fonksiyon süsleyicileri
  • Generators: Bellek verimli iteratorlar
  • Context Managers: with bloğu kullanımı
Uzmanlık Alanları
Web Geliştirme: Django, Flask, FastAPI
Veri Bilimi: Scikit-learn, TensorFlow
Otomasyon: Selenium, PyAutoGUI
API Geliştirme: FastAPI, REST APIs
💡 Öğrenmeye Devam Etmek İçin:
• Küçük projeler yapın (hesap makinesi, to-do list)
• GitHub'da kod paylaşın
• Python topluluklarına katılın
• Açık kaynak projelere katkıda bulunun

Öğrenmeye Devam Et!

Son Tavsiyeler
Pratik yapın: Her gün en az 30 dakika kod yazın
Sabırlı olun: Programlama öğrenmek zaman alır
Topluluk desteği: Stack Overflow, Python forums
Resmi dokümantasyon: docs.python.org'u inceleyin

print("Başarılar dileriz! 🚀")