Python’la Programlamaya Giriş: Kapsamlı Eğitim Rehberi
Python programlama dilini öğrenmek isteyenler için adım adım bir rehber.
Python’a Giriş
Python, Guido van Rossum tarafından geliştirilen, okunabilirliği yüksek, genel amaçlı bir programlama dilidir. Hem yeni başlayanlar için öğrenmesi kolay, hem de deneyimli geliştiriciler için güçlü ve esnek bir araçtır. Python’ın en büyük avantajlarından biri, geniş bir kütüphane yelpazesine sahip olmasıdır. Bu kütüphaneler sayesinde web geliştirme, veri analizi, yapay zeka, makine öğrenimi, bilimsel hesaplama gibi birçok alanda uygulamalar geliştirebilirsiniz.
Python’un kullanım alanları oldukça geniştir. Web uygulamaları geliştirmek için Django ve Flask gibi framework’ler kullanılırken, veri bilimi alanında Pandas, NumPy ve Scikit-learn gibi kütüphaneler yaygın olarak tercih edilir. Ayrıca, otomasyon görevleri, sistem yönetimi, oyun geliştirme gibi alanlarda da Python sıklıkla kullanılır.
Neden Python Öğrenmelisiniz?
- Okunabilirlik: Python’un sözdizimi, İngilizceye yakın ve kolay anlaşılırdır. Bu, kodun okunmasını ve bakımını kolaylaştırır.
- Geniş Kütüphane Desteği: Python, her türlü ihtiyaca yönelik geniş bir kütüphane yelpazesine sahiptir. Bu sayede, karmaşık problemleri kolayca çözebilirsiniz.
- Platform Bağımsızlığı: Python, Windows, macOS ve Linux gibi farklı işletim sistemlerinde çalışabilir.
- Büyük Topluluk: Python, büyük ve aktif bir topluluğa sahiptir. Bu topluluk, sorularınıza cevap bulmanıza ve sorunlarınızı çözmenize yardımcı olabilir.
- Yüksek Talep: Python geliştiricilerine olan talep sürekli artmaktadır. Python bilgisi, kariyeriniz için önemli bir avantaj sağlayabilir.
Python Kurulumu ve Ortam Hazırlığı
Python’u kullanmaya başlamak için öncelikle bilgisayarınıza kurmanız gerekmektedir. Python’un resmi web sitesi olan python.org adresinden en son sürümünü indirebilirsiniz.
Windows Kurulumu:
- python.org adresinden Windows için uygun olan Python sürümünü indirin.
- İndirdiğiniz .exe dosyasını çalıştırın.
- Kurulum sırasında “Add Python to PATH” seçeneğini işaretlemeyi unutmayın. Bu, Python’ı komut satırından çalıştırmanıza olanak tanır.
- Kurulumu tamamlayın.
macOS Kurulumu:
- python.org adresinden macOS için uygun olan Python sürümünü indirin.
- İndirdiğiniz .pkg dosyasını çalıştırın.
- Kurulum adımlarını takip edin.
Linux Kurulumu:
Linux dağıtımlarının çoğunda Python zaten yüklü olarak gelir. Ancak, en son sürümü kullanmak için aşağıdaki komutları kullanabilirsiniz:
- Debian/Ubuntu:
sudo apt update && sudo apt install python3
- Fedora:
sudo dnf install python3
- Arch Linux:
sudo pacman -S python
Ortam Hazırlığı:
Python’u kurduktan sonra, bir geliştirme ortamı (IDE) kullanmanız önerilir. Popüler Python IDE’leri arasında PyCharm, Visual Studio Code, Spyder ve Thonny bulunmaktadır. Bu IDE’ler, kod yazma, hata ayıklama ve çalıştırma gibi işlemleri kolaylaştırır.
Ayrıca, sanal ortamlar (virtual environments) kullanarak projelerinizi birbirinden izole edebilirsiniz. Bu, farklı projeler için farklı kütüphane sürümleri kullanmanıza olanak tanır. Sanal ortam oluşturmak için aşağıdaki komutu kullanabilirsiniz:
python3 -m venv venv
Sanal ortamı etkinleştirmek için:
- Windows:
venv\Scripts\activate
- macOS/Linux:
source venv/bin/activate
Python’un Temel Sözdizimi
Python’un sözdizimi oldukça basittir ve okunabilirlik ön plandadır. İşte Python’un temel sözdizimi kuralları:
- Girinti (Indentation): Python’da kod bloklarını belirtmek için girintiler kullanılır. Genellikle 4 boşluk karakteri kullanılır.
- Yorumlar (Comments): Tek satırlık yorumlar için
#
işareti, çok satırlık yorumlar için ise"""
veya'''
kullanılır. - Değişkenler (Variables): Değişkenler, değerleri saklamak için kullanılır. Python’da değişkenlerin türünü belirtmenize gerek yoktur.
- Veri Tipleri (Data Types): Python, farklı veri tiplerini destekler. Bunlar arasında sayılar (int, float, complex), metinler (string), listeler (list), demetler (tuple) ve sözlükler (dictionary) bulunur.
Örnek Kod:
# Bu bir yorum satırıdır
"""
Bu ise çok satırlı bir yorumdur.
Birden fazla satıra yayılabilir.
"""
# Değişken tanımlama
mesaj = "Merhaba Dünya!"
sayi = 10
# Ekrana yazdırma
print(mesaj)
print(sayi)
Veri Tipleri ve Değişkenler
Python, çeşitli veri tiplerini destekler. Her veri tipi, farklı türde verileri saklamak ve işlemek için kullanılır.
- Sayılar (Numbers):
- int (Tamsayı): Tam sayıları temsil eder (örneğin, 10, -5, 0).
- float (Ondalıklı Sayı): Ondalıklı sayıları temsil eder (örneğin, 3.14, -2.5, 0.0).
- complex (Karmaşık Sayı): Karmaşık sayıları temsil eder (örneğin, 2 + 3j).
- Metin (String): Metinleri (karakter dizilerini) temsil eder (örneğin, “Merhaba”, “Python”).
- Liste (List): Sıralı ve değiştirilebilir bir öğe koleksiyonunu temsil eder (örneğin, [1, 2, 3], [“elma”, “armut”, “muz”]).
- Demet (Tuple): Sıralı ve değiştirilemez bir öğe koleksiyonunu temsil eder (örneğin, (1, 2, 3), (“elma”, “armut”, “muz”)).
- Sözlük (Dictionary): Anahtar-değer çiftlerinden oluşan bir koleksiyonu temsil eder (örneğin, {“ad”: “Ahmet”, “yas”: 30}).
- Boolean (Mantıksal): True (Doğru) veya False (Yanlış) değerlerini temsil eder.
Değişkenler: Değişkenler, değerleri saklamak için kullanılan etiketlerdir. Python’da bir değişkene değer atamak için =
operatörü kullanılır.
ad = "Ayşe"
yas = 25
pi_sayisi = 3.14
print(ad)
print(yas)
print(pi_sayisi)
Operatörler
Operatörler, değişkenler ve değerler üzerinde işlemler yapmak için kullanılır. Python’da farklı türde operatörler bulunur:
- Aritmetik Operatörler: Toplama (+), çıkarma (-), çarpma (*), bölme (/), mod alma (%), kuvvet alma (**) ve tam bölme (//).
- Karşılaştırma Operatörleri: Eşittir (==), eşit değildir (!=), büyüktür (>), küçüktür (<), büyük eşittir (>=) ve küçük eşittir (<=).
- Atama Operatörleri: Atama (=), toplama ve atama (+=), çıkarma ve atama (-=), çarpma ve atama (*=), bölme ve atama (/=), mod alma ve atama (%=), kuvvet alma ve atama (**=) ve tam bölme ve atama (//=).
- Mantıksal Operatörler: Ve (and), veya (or) ve değil (not).
- Kimlik Operatörleri: is (aynı nesne mi?) ve is not (aynı nesne değil mi?).
- Üyelik Operatörleri: in (içinde mi?) ve not in (içinde değil mi?).
Örnek Kod:
x = 10
y = 5
# Aritmetik operatörler
print(x + y) # 15
print(x - y) # 5
print(x * y) # 50
print(x / y) # 2.0
print(x % y) # 0
print(x ** y) # 100000
print(x // y) # 2
# Karşılaştırma operatörleri
print(x == y) # False
print(x != y) # True
print(x > y) # True
print(x < y) # False
# Mantıksal operatörler
print(x > 5 and y < 10) # True
print(x > 5 or y > 10) # True
print(not(x > 5)) # False
Kontrol Yapıları: Koşullar ve Döngüler
Kontrol yapıları, kodun akışını kontrol etmek için kullanılır. Python’da iki temel kontrol yapısı vardır: koşullar (if, elif, else) ve döngüler (for, while).
Koşullar (if, elif, else): Koşullar, belirli bir koşulun doğru olup olmadığını kontrol eder ve buna göre farklı kod bloklarını çalıştırır.
yas = 20
if yas >= 18:
print("Ehliyet alabilirsiniz.")
elif yas >= 16:
print("Ehliyet için başvurabilirsiniz.")
else:
print("Ehliyet alamazsınız.")
Döngüler (for, while): Döngüler, belirli bir kod bloğunu tekrar tekrar çalıştırmak için kullanılır.
# for döngüsü
for i in range(5):
print(i)
# while döngüsü
sayi = 0
while sayi < 5:
print(sayi)
sayi += 1
Fonksiyonlar
Fonksiyonlar, belirli bir görevi yerine getiren yeniden kullanılabilir kod bloklarıdır. Fonksiyonlar, kodu daha düzenli ve okunabilir hale getirir.
# Fonksiyon tanımlama
def selamla(ad):
print("Merhaba, " + ad + "!")
# Fonksiyon çağırma
selamla("Ahmet")
selamla("Ayşe")
Fonksiyonlar, parametre alabilir ve değer döndürebilir.
def topla(x, y):
return x + y
# Fonksiyon çağırma ve sonucu yazdırma
sonuc = topla(5, 3)
print(sonuc) # 8
Modüller ve Kütüphaneler
Modüller ve kütüphaneler, Python'un yeteneklerini genişleten önceden yazılmış kod koleksiyonlarıdır. Modüller, tek bir dosyada bulunan fonksiyonlar, sınıflar ve değişkenlerdir. Kütüphaneler ise birbiriyle ilişkili modüllerin bir araya gelmesiyle oluşur.
Python'da birçok yerleşik modül bulunur (örneğin, math, random, datetime). Ayrıca, PyPI (Python Package Index) üzerinden binlerce farklı kütüphaneye erişebilirsiniz.
# math modülünü içe aktarma
import math
# Modüldeki fonksiyonları kullanma
print(math.pi) # Pi sayısını yazdırma
print(math.sqrt(16)) # 16'nın karekökünü yazdırma
# random modülünü içe aktarma
import random
# Rastgele bir sayı üretme
print(random.randint(1, 10)) # 1 ile 10 arasında rastgele bir sayı
Nesne Yönelimli Programlama (OOP)
Nesne yönelimli programlama (OOP), programları nesneler ve sınıflar kullanarak tasarlama ve geliştirme yaklaşımıdır. OOP, kodu daha düzenli, yeniden kullanılabilir ve bakımı kolay hale getirir.
- Sınıf (Class): Nesnelerin şablonudur. Bir sınıf, nesnelerin özelliklerini (attributes) ve davranışlarını (methods) tanımlar.
- Nesne (Object): Sınıfın bir örneğidir. Her nesne, sınıfında tanımlanan özelliklere ve davranışlara sahiptir.
- Kalıtım (Inheritance): Bir sınıfın özelliklerini ve davranışlarını başka bir sınıfa aktarma mekanizmasıdır.
- Çok Biçimlilik (Polymorphism): Farklı sınıfların aynı ada sahip metotlara sahip olabilmesi durumudur.
- Kapsülleme (Encapsulation): Nesnelerin iç detaylarını gizleme ve sadece belirli arayüzler üzerinden erişim sağlama prensibidir.
# Sınıf tanımlama
class Kopek:
def __init__(self, ad, cins):
self.ad = ad
self.cins = cins
def havla(self):
print("Hav Hav!")
# Nesne oluşturma
kopek1 = Kopek("Max", "Golden Retriever")
kopek2 = Kopek("Bella", "Labrador")
# Nesnelerin özelliklerine erişme
print(kopek1.ad) # Max
print(kopek2.cins) # Labrador
# Nesnelerin metotlarını çağırma
kopek1.havla() # Hav Hav!
kopek2.havla() # Hav Hav!
Hata Yakalama (Exception Handling)
Hata yakalama, programın çalışma zamanında oluşabilecek hataları (exceptions) ele alma işlemidir. Hata yakalama, programın çökmesini önler ve hatayı düzeltmek veya kullanıcıya bilgi vermek için olanak tanır.
Python'da hata yakalama için try
, except
, else
ve finally
blokları kullanılır.
try:
# Hata oluşabilecek kod
sayi = int(input("Bir sayı girin: "))
sonuc = 10 / sayi
print("Sonuç:", sonuc)
except ValueError:
# ValueError hatası oluşursa
print("Geçersiz giriş. Lütfen bir sayı girin.")
except ZeroDivisionError:
# ZeroDivisionError hatası oluşursa
print("Sıfıra bölme hatası.")
else:
# Hata oluşmazsa
print("İşlem başarıyla tamamlandı.")
finally:
# Her durumda çalışacak kod
print("Program sona erdi.")
Dosya İşlemleri
Python, dosyaları okuma, yazma ve düzenleme gibi işlemleri kolayca yapmanıza olanak tanır. Dosya işlemleri, veri depolama, loglama ve yapılandırma dosyalarını yönetme gibi birçok uygulama için önemlidir.
Dosya açmak için open()
fonksiyonu kullanılır. Dosya açma modları arasında okuma ("r"), yazma ("w"), ekleme ("a") ve hem okuma hem yazma ("r+") bulunur.
# Dosya açma (okuma modu)
dosya = open("ornek.txt", "r")
# Dosyayı okuma
icerik = dosya.read()
print(icerik)
# Dosyayı kapatma
dosya.close()
# Dosya açma (yazma modu)
dosya = open("ornek.txt", "w")
# Dosyaya yazma
dosya.write("Bu bir örnek metindir.")
# Dosyayı kapatma
dosya.close()
Dosyaları daha güvenli ve kolay bir şekilde işlemek için with
ifadesi kullanılabilir. with
ifadesi, dosyanın otomatik olarak kapatılmasını sağlar.
with open("ornek.txt", "r") as dosya:
icerik = dosya.read()
print(icerik)
İleri Seviye Python Konuları
Python'da uzmanlaşmak için aşağıdaki ileri seviye konuları inceleyebilirsiniz:
- Decorator'lar: Fonksiyonların davranışını değiştirmek için kullanılan yapılar.
- Generator'lar: Bellek verimliliğini artıran ve büyük veri kümelerini işlemek için kullanılan yapılar.
- Asenkron Programlama: Eş zamanlı işlemleri gerçekleştirmek ve performansı artırmak için kullanılan teknikler (async/await).
- Metaclass'lar: Sınıfların nasıl oluşturulduğunu kontrol etmek için kullanılan yapılar.
- Veri Yapıları ve Algoritmalar: Daha verimli ve optimize edilmiş kod yazmak için kullanılan teknikler.
- İleri Seviye Kütüphaneler: Veri bilimi (Pandas, NumPy, Scikit-learn), web geliştirme (Django, Flask) ve yapay zeka (TensorFlow, PyTorch) gibi alanlarda kullanılan ileri seviye kütüphaneler.
Python ile Projeler
Python becerilerinizi geliştirmek için aşağıdaki proje fikirlerini deneyebilirsiniz:
- Web Kazıyıcı (Web Scraper): Belirli web sitelerinden veri çekme ve işleme.
- Oyun Geliştirme: Pygame kütüphanesini kullanarak basit oyunlar geliştirme (örneğin, Pong, Tetris).
- Veri Analizi Projesi: Gerçek dünya verilerini analiz etme ve görselleştirme (örneğin, hava durumu verileri, satış verileri).
- Otomasyon Aracı: Tekrarlayan görevleri otomatikleştirme (örneğin, dosya yönetimi, e-posta gönderme).
- Web Uygulaması: Flask veya Django kullanarak basit bir web uygulaması geliştirme (örneğin, blog, not uygulaması).
Kaynaklar ve İpuçları
Python öğrenme sürecinizi destekleyecek bazı kaynaklar ve ipuçları:
- Resmi Python Belgeleri: https://docs.python.org/3/
- Online Kurslar: Coursera, Udemy, Codecademy gibi platformlarda Python kursları bulabilirsiniz.
- Kitaplar: "Python Crash Course", "Automate the Boring Stuff with Python", "Fluent Python" gibi kitaplar Python öğrenmek için harika kaynaklardır.
- Stack Overflow: Python ile ilgili sorularınızı sormak ve cevaplar bulmak için Stack Overflow'u kullanabilirsiniz.
- GitHub: Açık kaynaklı Python projelerini inceleyerek ve katkıda bulunarak pratik yapabilirsiniz.
- Düzenli Pratik: Python becerilerinizi geliştirmek için düzenli olarak pratik yapın ve projeler geliştirin.