📚 Python Tutorial

Kod örnekleriyle Python öğrenin! Her konu için detaylı açıklamalar, çalışan kodlar ve pratik alıştırmalar.

50+ Konu
200+ Kod Örneği
100+ Alıştırma

📋 Tutorial İçeriği

🔧 Python Temel Kavramları

Python programlamaya başlamak için temel kavramları öğrenelim. İlk olarak değişkenler ve print fonksiyonu ile başlayacağız.

💾 Değişkenler

Verileri bellekte saklamak için kullanılır

🖨️ Print Fonksiyonu

Verileri ekrana yazdırmak için kullanılır

💬 Yorumlar

Kodu açıklamak için kullanılan notlar

🐍 Python Kodu - Değişkenler ve Print
# Değişken tanımlama
isim = "Ahmet"
yas = 25
boy = 1.75
ogrenci_mi = True

# Değişkenleri yazdırma
print("Merhaba, ben", isim)
print(f"Yaşım: {yas}")
print(f"Boyum: {boy} metre")
print(f"Öğrenci miyim? {ogrenci_mi}")

# Matematiksel işlemler
a = 10
b = 5
toplam = a + b
print(f"{a} + {b} = {toplam}")
Çıktı:
Merhaba, ben Ahmet
Yaşım: 25
Boyum: 1.75 metre
Öğrenci miyim? True
10 + 5 = 15

🎯 Deneyin!

Kendi bilgilerinizle değişkenler oluşturun:

  • Adınızı ve soyadınızı ayrı değişkenlerde saklayın
  • Yaşınızı ve doğum yılınızı hesaplayın
  • Hepsini formatted string ile yazdırın

📊 Python Veri Tipleri

Python'da farklı türde verileri saklamak için çeşitli veri tipleri vardır. Her birinin kendine özgü özellikleri ve kullanım alanları bulunur.

🎯 Veri Tipleri Örnekleri
# String (Metin)
mesaj = "Python öğreniyorum!"
uzun_metin = """Bu çok satırlı
bir metin örneğidir."""

# Sayılar
tamsayi = 42
ondalikli = 3.14159
buyuk_sayi = 1e6  # 1,000,000

# Boolean (Doğru/Yanlış)
dogru = True
yanlis = False

# List (Liste) - değiştirilebilir
meyveler = ["elma", "muz", "portakal"]
sayilar = [1, 2, 3, 4, 5]
karisik = ["Python", 3.8, True, [1, 2, 3]]

# Tuple (Demet) - değiştirilemez
koordinat = (10, 20)
renkler = ("kırmızı", "mavi", "yeşil")

# Dictionary (Sözlük) - anahtar-değer çiftleri
kisi = {
    "ad": "Mehmet",
    "yas": 30,
    "sehir": "İstanbul",
    "hobiler": ["kitap okuma", "müzik"]
}

# Set (Küme) - tekrarsız elemanlar
benzersiz_sayilar = {1, 2, 3, 4, 5}
renkler_set = {"kırmızı", "mavi", "yeşil"}

# Veri tiplerini kontrol etme
print(f"mesaj'ın tipi: {type(mesaj)}")
print(f"tamsayi'nın tipi: {type(tamsayi)}")
print(f"meyveler'in tipi: {type(meyveler)}")
print(f"kisi'nin tipi: {type(kisi)}")
Çıktı:
mesaj'ın tipi: <class 'str'>
tamsayi'nın tipi: <class 'int'>
meyveler'in tipi: <class 'list'>
kisi'nin tipi: <class 'dict'>

🏋️ Alıştırma

Görev: Bir öğrenci bilgi sistemi oluşturun:

  1. Öğrenci bilgilerini dictionary olarak saklayın
  2. Notları list olarak ekleyin
  3. Ortalamayı hesaplayın ve yazdırın

🔄 Kontrol Yapıları

Programların akışını kontrol etmek için if-else koşulları ve döngüler kullanılır.

🎯 If-Else Koşulları

Koşullu İfadeler
# Basit if-else
yas = 18

if yas >= 18:
    print("Ehliyet alabilirsin!")
else:
    print("Daha ehliyet alamazsın.")

# Çoklu koşul
not_ortalamasi = 85

if not_ortalamasi >= 90:
    harf_notu = "AA"
elif not_ortalamasi >= 80:
    harf_notu = "BA"
elif not_ortalamasi >= 70:
    harf_notu = "BB"
elif not_ortalamasi >= 60:
    harf_notu = "CB"
else:
    harf_notu = "FF"

print(f"Harf notunuz: {harf_notu}")

# Mantıksal operatörler
kullanici_adi = "admin"
sifre = "123456"

if kullanici_adi == "admin" and sifre == "123456":
    print("Giriş başarılı!")
elif kullanici_adi == "admin" or sifre == "123456":
    print("Kullanıcı adı veya şifre hatalı!")
else:
    print("Geçersiz bilgiler!")

🔂 Döngüler

For ve While Döngüleri
# For döngüsü - liste üzerinde
meyveler = ["elma", "muz", "portakal", "üzüm"]

print("Meyve listesi:")
for meyve in meyveler:
    print(f"- {meyve}")

# For döngüsü - sayılar
print("\n1'den 5'e kadar sayılar:")
for i in range(1, 6):
    print(f"Sayı: {i}")

# For döngüsü - enumerate ile
print("\nİndeks ile birlikte:")
for index, meyve in enumerate(meyveler):
    print(f"{index + 1}. {meyve}")

# While döngüsü
sayac = 1
print("\nWhile döngüsü:")
while sayac <= 5:
    print(f"Döngü {sayac}")
    sayac += 1

# List comprehension (kısa döngü)
kareler = [x**2 for x in range(1, 6)]
print(f"\nKareler: {kareler}")

# Çift sayıları filtreleme
sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
cift_sayilar = [x for x in sayilar if x % 2 == 0]
print(f"Çift sayılar: {cift_sayilar}")

💡 Pro İpucu

List Comprehension: Döngüleri tek satırda yazmanın etkili yoludur. Özellikle filtreleme ve dönüştürme işlemlerinde kullanışlıdır.

⚙️ Fonksiyonlar

Fonksiyonlar, tekrar kullanılabilir kod blokları oluşturmamızı sağlar. Kodun daha düzenli ve modüler olmasına yardımcı olur.

Fonksiyon Tanımlama ve Kullanma
# Basit fonksiyon
def selamla():
    print("Merhaba Python!")

# Parametreli fonksiyon
def kişisel_selamlama(isim, yas=None):
    if yas:
        print(f"Merhaba {isim}! {yas} yaşındasın.")
    else:
        print(f"Merhaba {isim}!")

# Geri değer döndüren fonksiyon
def toplam_hesapla(a, b):
    sonuc = a + b
    return sonuc

def daire_alan(yaricap):
    import math
    alan = math.pi * yaricap ** 2
    return alan

# Çoklu değer döndürme
def istatistik_hesapla(sayilar):
    toplam = sum(sayilar)
    ortalama = toplam / len(sayilar)
    minimum = min(sayilar)
    maksimum = max(sayilar)
    return toplam, ortalama, minimum, maksimum

# Lambda fonksiyonları (anonim fonksiyonlar)
kare_al = lambda x: x ** 2
toplama = lambda x, y: x + y

# Fonksiyonları kullanma
selamla()
kişisel_selamlama("Ahmet")
kişisel_selamlama("Ayşe", 25)

sonuc = toplam_hesapla(10, 15)
print(f"Toplam: {sonuc}")

alan = daire_alan(5)
print(f"Daire alanı: {alan:.2f}")

sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
top, ort, min_val, max_val = istatistik_hesapla(sayilar)
print(f"İstatistikler - Toplam: {top}, Ortalama: {ort:.2f}")

print(f"Lambda ile kare: {kare_al(5)}")
print(f"Lambda ile toplama: {toplama(3, 7)}")

🏋️ Fonksiyon Alıştırması

Görev: Aşağıdaki fonksiyonları yazın:

  1. asal_mi(sayi) - Sayının asal olup olmadığını kontrol eder
  2. faktoriyel(n) - Faktöriyel hesaplar
  3. kelime_sayisi(metin) - Metindeki kelime sayısını bulur

🏗️ Object-Oriented Programming (OOP)

OOP, kodlarımızı sınıflar (class) ve nesneler (object) halinde organize etmemizi sağlar.

Sınıf Tanımlama ve Kullanma
# Basit sınıf tanımı
class Araba:
    # Sınıf değişkeni
    tekerlek_sayisi = 4
    
    # Constructor (yapıcı metod)
    def __init__(self, marka, model, yil, renk):
        self.marka = marka
        self.model = model  
        self.yil = yil
        self.renk = renk
        self.km = 0
        self.calisiyor_mu = False
    
    # Instance metodlar
    def calistir(self):
        self.calisiyor_mu = True
        print(f"{self.marka} {self.model} çalıştırıldı!")
    
    def durdur(self):
        self.calisiyor_mu = False
        print(f"{self.marka} {self.model} durduruldu.")
    
    def sur(self, mesafe):
        if self.calisiyor_mu:
            self.km += mesafe
            print(f"{mesafe} km yol alındı. Toplam: {self.km} km")
        else:
            print("Önce arabayı çalıştır!")
    
    def bilgi_goster(self):
        durum = "Çalışıyor" if self.calisiyor_mu else "Durdu"
        print(f"""
        Marka: {self.marka}
        Model: {self.model}
        Yıl: {self.yil}
        Renk: {self.renk}
        KM: {self.km}
        Durum: {durum}
        """)

# Miras alma (Inheritance)
class ElektrikliAraba(Araba):
    def __init__(self, marka, model, yil, renk, batarya_kapasitesi):
        super().__init__(marka, model, yil, renk)  # Üst sınıfın constructor'ını çağır
        self.batarya_kapasitesi = batarya_kapasitesi
        self.batarya_seviyesi = 100
    
    def sarj_et(self, dakika):
        sarj_miktari = dakika * 2  # Dakikada %2 şarj
        self.batarya_seviyesi = min(100, self.batarya_seviyesi + sarj_miktari)
        print(f"{dakika} dakika şarj edildi. Batarya: %{self.batarya_seviyesi}")
    
    def sur(self, mesafe):
        if self.batarya_seviyesi < 10:
            print("Batarya düşük! Şarj etmelisin.")
            return
        
        batarya_tuketimi = mesafe * 0.2  # KM başına %0.2 batarya
        self.batarya_seviyesi -= batarya_tuketimi
        self.km += mesafe
        print(f"{mesafe} km yol alındı. Batarya: %{self.batarya_seviyesi:.1f}")

# Sınıfları kullanma
araba1 = Araba("Toyota", "Corolla", 2020, "Beyaz")
araba1.bilgi_goster()
araba1.calistir()
araba1.sur(50)

tesla = ElektrikliAraba("Tesla", "Model 3", 2023, "Kırmızı", 75)
tesla.calistir()
tesla.sur(100)
tesla.sarj_et(30)

💡 OOP Temel Kavramları

  • Class (Sınıf): Nesne şablonu
  • Object (Nesne): Sınıftan oluşturulan örnek
  • Inheritance (Miras): Sınıfların özelliklerini devralma
  • Encapsulation (Kapsülleme): Veri gizleme
  • Polymorphism (Çok biçimlilik): Aynı metodun farklı davranışlar sergilemesi

🎯 Öğrenme İlerlemeniz

Python tutorial'ının hangi bölümlerini tamamladığınızı takip edin:

Temel Kavramlar 100%
Veri Tipleri 85%
Kontrol Yapıları 70%

⭐ Sonraki Adımlar

Tutorial'ı tamamladıktan sonra:

🎓 Öğrenmeye Devam Edin

Bu tutorial ile Python'un temellerini öğrendiniz. Şimdi gerçek projeler ile deneyim kazanma zamanı!

🛠️ Projelere Başla 💻 Kodu Test Et