Bu çalışma materyali, Python programlama dilindeki for döngüsü, while döngüsü, fonksiyonlar ve listeler konularını kapsayan bir ders kaydından derlenmiştir. Amacı, bilişim sınavlarına hazırlanan veya Python'a yeni başlayan öğrencilere temel kavramları anlaşılır ve düzenli bir şekilde sunmaktır.
🐍 Python Programlamanın Temelleri: Döngüler, Fonksiyonlar ve Listeler
Python, modern yazılım geliştirmede ve bilişim sınavlarında sıklıkla karşılaşılan, yüksek seviyeli, yorumlanabilir bir programlama dilidir. Bu dilin temel yapı taşları arasında yer alan döngüler, fonksiyonlar ve listeler, programlama mantığının anlaşılması ve etkin kod yazımı için vazgeçilmezdir. Bu materyal, bu temel kavramların bilişim alanındaki önemine ve genel çerçevesine değinerek, sağlam bir programlama temeli oluşturmanıza yardımcı olacaktır.
1. 🔄 Döngü Yapıları: For ve While Döngüleri
Döngüler, belirli bir kod bloğunu tekrar tekrar çalıştırmak için kullanılan kontrol yapılarıdır. Python'da iki ana döngü tipi bulunmaktadır: for döngüsü ve while döngüsü.
1.1. For Döngüsü
📚 Tanım: for döngüsü, genellikle bir dizi, liste, demet veya string gibi yinelenebilir nesneler üzerinde gezinmek için kullanılır. Belirli bir eleman koleksiyonu üzerinde işlem yapmak veya belirli bir sayı aralığında tekrar eden görevleri otomatikleştirmek için idealdir.
✅ Kullanım Alanları:
- Bir listenin her elemanına erişmek.
- Belirli bir sayı aralığında işlem yapmak (örneğin, 1'den 10'a kadar sayıları yazdırmak).
- Bir stringin her karakterini işlemek.
💡 İpucu: range() fonksiyonu ile belirli bir sayı aralığı oluşturularak da kullanılabilir.
# Örnek 1: Bir liste üzerinde gezinme
meyveler = ["elma", "muz", "kiraz"]
for meyve in meyveler:
print(meyve)
# Çıktı:
# elma
# muz
# kiraz
# Örnek 2: Sayı aralığı üzerinde gezinme (0'dan 4'e kadar)
for i in range(5): # range(5) -> 0, 1, 2, 3, 4
print(i)
# Çıktı:
# 0
# 1
# 2
# 3
# 4
1.2. While Döngüsü
📚 Tanım: while döngüsü, belirli bir koşul doğru olduğu sürece kod bloğunu çalıştırmaya devam eder. Koşul yanlış olduğunda döngü sona erer. Kaç kez tekrar edileceği önceden bilinmeyen durumlar için daha uygundur.
✅ Kullanım Alanları:
- Kullanıcıdan geçerli bir giriş alınana kadar tekrar etmek.
- Bir oyunun belirli bir koşul (örneğin, can bitene kadar) sağlanana kadar devam etmesi.
- Bir dosya sonuna ulaşılana kadar okuma yapmak.
⚠️ Önemli: while döngüsünde, döngü koşulunu yanlış yapacak bir durumun döngü içinde gerçekleştiğinden emin olun, aksi takdirde sonsuz döngüye girilebilir.
# Örnek 1: Belirli bir koşul sağlanana kadar devam etme
sayac = 0
while sayac < 3:
print("Sayı:", sayac)
sayac += 1 # Sayacı artırarak döngünün sonlanmasını sağlıyoruz
# Çıktı:
# Sayı: 0
# Sayı: 1
# Sayı: 2
# Örnek 2: Kullanıcıdan doğru giriş alınana kadar tekrar etme
sifre = ""
while sifre != "gizli123":
sifre = input("Lütfen şifreyi girin: ")
if sifre != "gizli123":
print("Yanlış şifre, tekrar deneyin.")
print("Giriş başarılı!")
2. 🧩 Fonksiyonlar: Modüler Programlamanın Temeli
📚 Tanım: Fonksiyonlar, belirli bir görevi yerine getiren, yeniden kullanılabilir kod bloklarıdır. Python'da def anahtar kelimesi ile tanımlanır.
✅ Amaçları:
- Kod Tekrarını Azaltma: Aynı kod bloğunu birden fazla yerde yazmak yerine, bir fonksiyon tanımlayıp onu çağırarak kod tekrarını önler.
- Modülerlik ve Okunabilirlik: Programı daha küçük, yönetilebilir parçalara ayırarak kodun okunabilirliğini ve anlaşılırlığını artırır.
- Hata Ayıklama Kolaylığı: Hataların tespitini ve düzeltilmesini kolaylaştırır, çünkü sorunlar belirli bir fonksiyon içinde izole edilebilir.
- Bakım ve Genişletilebilirlik: Kodun bakımını ve gelecekteki genişletmelerini daha kolay hale getirir.
2.1. Fonksiyon Tanımlama ve Kullanımı
Bir fonksiyon, sıfır veya daha fazla parametre alabilir ve bir değer döndürebilir.
1️⃣ Tanımlama: def anahtar kelimesiyle başlar, ardından fonksiyon adı ve parantez içinde parametreler gelir. İki nokta üst üste (:) ile biter ve fonksiyon bloğu girintili olarak yazılır.
2️⃣ Parametreler: Fonksiyonun çalışması için gerekli olan girdilerdir.
3️⃣ Dönüş Değeri: return ifadesi, fonksiyonun bir sonuç üretmesini ve bu sonucu çağıran yere geri göndermesini sağlar.
# Örnek 1: Parametresiz ve dönüş değeri olmayan fonksiyon
def merhaba_yaz():
print("Merhaba Dünya!")
merhaba_yaz() # Fonksiyonu çağırma
# Çıktı: Merhaba Dünya!
# Örnek 2: Parametre alan ve dönüş değeri olan fonksiyon
def toplama(sayi1, sayi2):
sonuc = sayi1 + sayi2
return sonuc
toplam = toplama(5, 3) # Fonksiyonu çağırma ve dönüş değerini değişkene atama
print("Toplam:", toplam)
# Çıktı: Toplam: 8
# Örnek 3: Varsayılan parametre değeri
def selamlama(isim="Misafir"):
print(f"Hoş geldiniz, {isim}!")
selamlama("Ayşe")
selamlama() # Varsayılan değeri kullanır
# Çıktı:
# Hoş geldiniz, Ayşe!
# Hoş geldiniz, Misafir!
3. 📊 Veri Yapıları: Listeler
📚 Tanım: Listeler, Python'daki en temel ve çok yönlü veri yapılarından biridir. Sıralı, değiştirilebilir (mutable) ve farklı veri tiplerini içerebilen bir eleman koleksiyonudur. Köşeli parantezler [] ile tanımlanır ve elemanları virgülle ayrılır.
✅ Özellikleri:
- Sıralı: Elemanların belirli bir sırası vardır ve bu sıra korunur.
- Değiştirilebilir: Oluşturulduktan sonra elemanları eklenebilir, çıkarılabilir veya değiştirilebilir.
- Farklı Veri Tipleri: Bir liste içinde hem sayılar, hem stringler, hem de başka listeler gibi farklı veri tipleri bulunabilir.
3.1. Liste Oluşturma ve Elemanlara Erişim
Listeler, indeksleme ve dilimleme işlemleriyle elemanlarına erişim imkanı sunar.
- İndeksleme: Belirli bir konumdaki elemana erişmek için kullanılır. Python'da indeksler 0'dan başlar. Negatif indeksler listenin sonundan başlar (-1 son eleman).
- Dilimleme (Slicing): Listenin bir bölümünü (alt listesini) elde etmek için kullanılır.
liste[başlangıç:bitiş:adım]formatındadır.
# Örnek 1: Liste oluşturma
sayilar = [10, 20, 30, 40, 50]
isimler = ["Ali", "Veli", "Ayşe"]
karisik_liste = [1, "Python", True, 3.14]
# Örnek 2: Elemanlara erişim (İndeksleme)
print(sayilar[0]) # Çıktı: 10 (ilk eleman)
print(isimler[2]) # Çıktı: Ayşe (üçüncü eleman)
print(sayilar[-1]) # Çıktı: 50 (son eleman)
# Örnek 3: Dilimleme
print(sayilar[1:4]) # Çıktı: [20, 30, 40] (1. indeksten 4. indekse kadar, 4 dahil değil)
print(sayilar[:3]) # Çıktı: [10, 20, 30] (baştan 3. indekse kadar)
print(sayilar[2:]) # Çıktı: [30, 40, 50] (2. indeksten sona kadar)
print(sayilar[::2]) # Çıktı: [10, 30, 50] (tüm liste, 2 adımda bir)
3.2. Temel Liste Metotları
Listeler, eleman ekleme, çıkarma, değiştirme ve sıralama gibi birçok işlemi destekler.
append(eleman): Listenin sonuna eleman ekler.insert(indeks, eleman): Belirtilen indekse eleman ekler.remove(değer): Belirtilen değeri listeden kaldırır (ilk bulunanı).pop(indeks): Belirtilen indeksteki elemanı kaldırır ve döndürür. İndeks belirtilmezse son elemanı kaldırır.del liste[indeks]: Belirtilen indeksteki elemanı siler.sort(): Listeyi yerinde sıralar (küçükten büyüğe).len(liste): Listenin eleman sayısını döndürür.
# Örnek: Liste metotları
my_list = [10, 20, 30]
my_list.append(40) # [10, 20, 30, 40]
print("Append sonrası:", my_list)
my_list.insert(1, 15) # [10, 15, 20, 30, 40]
print("Insert sonrası:", my_list)
my_list.remove(30) # [10, 15, 20, 40]
print("Remove sonrası:", my_list)
silinen_eleman = my_list.pop(2) # 20'yi kaldırır ve döndürür
print("Pop sonrası:", my_list, "Silinen:", silinen_eleman) # [10, 15, 40] Silinen: 20
my_list[0] = 5 # Eleman değiştirme: [5, 15, 40]
print("Değişiklik sonrası:", my_list)
my_list.sort() # [5, 15, 40]
print("Sıralama sonrası:", my_list)
print("Liste uzunluğu:", len(my_list)) # Çıktı: 3
🏁 Sonuç: Temel Python Kavramlarının Önemi
Özetle, Python'daki for ve while döngüleri, fonksiyonlar ve listeler, programlama dilinin temelini oluşturan ve her bilişim öğrencisinin veya profesyonelinin hakim olması gereken kritik kavramlardır.
- ✅ Döngüler: Tekrarlayan işlemleri otomatize eder, kodun verimliliğini artırır.
- ✅ Fonksiyonlar: Kodun modülerliğini, yeniden kullanılabilirliğini ve okunabilirliğini artırır, büyük projelerin yönetimini kolaylaştırır.
- ✅ Listeler: Esnek ve dinamik veri yönetimi için vazgeçilmez bir araçtır, farklı veri tiplerini barındırabilir ve kolayca manipüle edilebilir.
Bu yapıların derinlemesine anlaşılması ve etkin bir şekilde kullanılması, daha karmaşık algoritmaların ve yazılım sistemlerinin geliştirilmesi için sağlam bir temel oluşturur. Bu kavramlara hakimiyet, bilişim sınavlarında başarı elde etmenin yanı sıra, gerçek dünya programlama projelerinde de verimliliği ve kod kalitesini önemli ölçüde artıracaktır.








