Kod örnekleriyle Python öğrenin! Her konu için detaylı açıklamalar, çalışan kodlar ve pratik alıştırmalar.
Python programlamaya başlamak için temel kavramları öğrenelim. İlk olarak değişkenler ve print fonksiyonu ile başlayacağız.
Verileri bellekte saklamak için kullanılır
Verileri ekrana yazdırmak için kullanılır
Kodu açıklamak için kullanılan notlar
# 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}")
Kendi bilgilerinizle değişkenler oluşturun:
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.
# 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)}")
Görev: Bir öğrenci bilgi sistemi oluşturun:
Programların akışını kontrol etmek için if-else koşulları ve döngüler kullanılır.
# 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!")
# 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}")
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, tekrar kullanılabilir kod blokları oluşturmamızı sağlar. Kodun daha düzenli ve modüler olmasına yardımcı olur.
# 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)}")
Görev: Aşağıdaki fonksiyonları yazın:
asal_mi(sayi)
- Sayının asal olup olmadığını kontrol ederfaktoriyel(n)
- Faktöriyel hesaplarkelime_sayisi(metin)
- Metindeki kelime sayısını bulurOOP, kodlarımızı sınıflar (class) ve nesneler (object) halinde organize etmemizi sağlar.
# 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)
Python tutorial'ının hangi bölümlerini tamamladığınızı takip edin:
Tutorial'ı tamamladıktan sonra:
Bu tutorial ile Python'un temellerini öğrendiniz. Şimdi gerçek projeler ile deneyim kazanma zamanı!