Python Kod Örnekleri: Başlangıçtan İleri Seviyeye 20 Pratik Örnek
Python Kod Örnekleri ile Programlamaya Giriş
Python, hem yeni başlayanlar hem de deneyimli geliştiriciler için ideal bir programlama dilidir. Basit söz dizimi, geniş kütüphane desteği ve çok yönlülüğü sayesinde veri analizi, web geliştirme, otomasyon ve yapay zeka gibi birçok alanda tercih edilmektedir. Bu bölümde, Python kod örnekleriyle programlamaya nasıl başlayacağınızı ve dilin temel özelliklerini pratik bir şekilde öğreneceksiniz.
Python Neden Tercih Edilmeli?
Python’un popülerliğinin ardında birkaç önemli neden yatar:
- Kolay Öğrenilebilir Söz Dizimi: Diğer dillere kıyasla daha az kod satırıyla aynı işlemleri gerçekleştirebilirsiniz. Örneğin, bir metni ekrana yazdırmak için sadece
print("Merhaba Dünya")komutunu kullanmanız yeterlidir. - Geniş Kütüphane Desteği: Veri analizi için
Pandas, web geliştirme içinFlask/Django, makine öğrenimi içinTensorFlowgibi kütüphaneler, projelerinizi hızlandırır. - Çok Yönlülük: Python, hem küçük scriptler hem de büyük ölçekli uygulamalar için uygundur. Aynı zamanda Windows, macOS ve Linux gibi farklı işletim sistemlerinde sorunsuz çalışır.
- Aktif Topluluk ve Dokümantasyon: Python’un resmi dokümantasyonu ve Stack Overflow gibi platformlar, karşılaştığınız sorunlara hızlı çözüm bulmanızı sağlar.
Temel Python Söz Dizimi ve Kurulum
Python kod örnekleriyle çalışmaya başlamadan önce, dilin temel yapı taşlarını anlamak önemlidir.
Kurulum Adımları
- Python’ı İndirin: Resmi web sitesi [python.org](https://www.python.org/) üzerinden en son sürümü indirin.
- Kurulumu Tamamlayın: Windows için kurulum sihirbazını, macOS/Linux için terminal üzerinden
brew install pythonveyasudo apt-get install python3komutlarını kullanın. - Geliştirme Ortamı Seçin: Başlangıç için
IDLEveyaVS Codegibi editörler idealdir. Daha profesyonel projeler içinPyCharmtercih edilebilir.
Temel Söz Dizimi Örnekleri
Python’un temel yapılarını birkaç basit örnekle inceleyelim:
# Değişken Tanımlama
ad = "Ahmet"
yas = 25
ortalama = 3.75# Koşul Yapıları
if yas >= 18:
print(“Reşitsiniz.”)
else:
print(“Reşit değilsiniz.”)
# Döngüler
for i in range(5):
print(f”Sayi: {i}”)
# Fonksiyon Tanımlama
def selamla(isim):
return f”Merhaba, {isim}!”
print(selamla(“Ayşe”))
Bu örnekler, Python’un temel mantığını anlamanıza yardımcı olacaktır. Kod örnekleriyle çalışırken, her satırın ne işe yaradığını anlamaya odaklanın. Örneğin, range(5) fonksiyonu 0’dan 4’e kadar sayıları üretir, f-string ise metin içine değişkenleri kolayca yerleştirmenizi sağlar.
Python kod örnekleriyle çalışmaya başlarken, küçük projelerle pratik yapmak en etkili yöntemdir. Örneğin, basit bir hesap makinesi veya kullanıcı giriş sistemi geliştirerek, dilin mantığını daha iyi kavrayabilirsiniz. Unutmayın, Python öğrenmek sadece teorik bilgiyle sınırlı değildir; uygulamalı çalışmalar, becerilerinizi hızla geliştirmenizi sağlar.
Sonraki bölümlerde, başlangıç seviyesinden ileri seviyeye kadar farklı Python kod örneklerini inceleyeceğiz. Her örnek, gerçek hayatta karşılaşabileceğiniz problemleri çözmeye yönelik olacak.
Başlangıç Seviyesi Python Kod Örnekleri
Python kod örnekleriyle programlamaya yeni başlayanlar için en etkili yöntem, temel kavramları pratik uygulamalarla pekiştirmektir. Bu bölümde, Python’un temel yapı taşlarını kullanarak gerçek hayatta karşılaşabileceğiniz basit problemleri çözecek kod örneklerini inceleyeceğiz.
1. Basit Hesap Makinesi Uygulaması
Hemen her programlama dilinde ilk örneklerden biri olan hesap makinesi, Python’da sadece birkaç satır kodla oluşturulabilir. Bu örnek, kullanıcı girişlerini alma, koşullu ifadeler ve temel matematik işlemlerini içerir:
# Kullanıcıdan iki sayı ve işlem türünü al
sayi1 = float(input("Birinci sayıyı girin: "))
sayi2 = float(input("İkinci sayıyı girin: "))
islem = input("İşlem türünü girin (+, -, *, /): ")# İşleme göre sonucu hesapla
if islem == “+”:
sonuc = sayi1 + sayi2
elif islem == “-“:
sonuc = sayi1 – sayi2
elif islem == “*”:
sonuc = sayi1 * sayi2
elif islem == “/”:
sonuc = sayi1 / sayi2
else:
sonuc = “Geçersiz işlem”
print(f”Sonuç: {sonuc}”)
2. Kullanıcı Girişi ve Şifre Doğrulama
Bu örnek, temel döngüler ve koşullu ifadeleri kullanarak basit bir kimlik doğrulama sistemi oluşturur. Gerçek uygulamalarda daha güvenli yöntemler kullanılır, ancak başlangıç seviyesi için ideal bir alıştırma:
# Tanımlı kullanıcı bilgileri
kullanici_adi = "admin"
sifre = "1234"# Kullanıcıdan giriş bilgilerini al
giris = input(“Kullanıcı adınızı girin: “)
parola = input(“Şifrenizi girin: “)
# Doğrulama işlemi
if giris == kullanici_adi and parola == sifre:
print(“Giriş başarılı!”)
else:
print(“Hatalı kullanıcı adı veya şifre.”)
3. Liste ve Sözlük İşlemleri
Python’un en güçlü özelliklerinden biri, veri yapılarını kolayca yönetebilmesidir. Bu örnekte, liste ve sözlüklerle temel işlemleri göreceksiniz:
# Liste işlemleri
meyveler = ["elma", "armut", "çilek"]
meyveler.append("muz") # Listeye ekleme
meyveler.remove("armut") # Listeden çıkarma
print(f"Meyveler: {meyveler}")# Sözlük işlemleri
kullanici = {
“ad”: “Ahmet”,
“yas”: 30,
“meslek”: “Mühendis”
}
kullanici[“sehir”] = “İstanbul” # Yeni anahtar ekleme
print(f”Kullanıcı bilgileri: {kullanici}”)
4. Basit Veri Analizi Örneği
Başlangıç seviyesinde bile Python’la küçük veri analizleri yapabilirsiniz. Bu örnek, bir liste içindeki sayıların ortalamasını hesaplar:
# Sayı listesini tanımla
sayilar = [12, 15, 18, 21, 24]# Ortalama hesapla
ortalama = sum(sayilar) / len(sayilar)
print(f”Sayıların ortalaması: {ortalama:.2f}”)
5. Dosya Okuma/Yazma İşlemleri
Python’da dosya işlemleri oldukça basittir. Bu örnek, bir metin dosyasını okuyup içeriğine yeni bir satır ekler:
# Dosyayı okuma modunda aç
with open("ornek.txt", "r+") as dosya:
icerik = dosya.read()
print("Dosya içeriği:")
print(icerik)# Yeni satır ekle
dosya.write(“\nBu satır Python ile eklendi.”)
Bu başlangıç seviyesi Python kod örnekleri, dilin temel yapılarını anlamanıza ve küçük projeler geliştirmenize yardımcı olacaktır. Her örnek, gerçek hayatta karşılaşabileceğiniz basit problemleri çözmeye yöneliktir. Kodları kendi ihtiyaçlarınıza göre değiştirerek pratik yapmayı unutmayın.
Orta Seviye Python Kod Örnekleri
Orta seviye Python geliştiricileri için temel kavramları aşarak daha karmaşık ve gerçek hayatta kullanılan uygulamalara geçiş yapma zamanı. Bu aşamada, kod organizasyonu, hata yönetimi ve dış kaynaklarla etkileşim gibi konular ön plana çıkıyor. İşte orta seviye Python kod örnekleriyle becerilerinizi bir üst seviyeye taşıyacak pratik uygulamalar:
1. Fonksiyonlar ve Modüllerle Çalışma
Profesyonel Python geliştiricileri kodlarını modüler hale getirerek yeniden kullanımı artırır. İşte bir hesaplama modülü örneği:
# hesaplama.py modülü
def kdv_hesapla(tutar, oran=0.18):
"""Tutara KDV ekleyen fonksiyon"""
return tutar * (1 + oran)def indirim_uygula(tutar, indirim_orani=0.1):
“””Tutara indirim uygulayan fonksiyon”””
return tutar * (1 – indirim_orani)
# Kullanım örneği
import hesaplama
fiyat = 100
son_fiyat = hesaplama.indirim_uygula(fiyat)
son_fiyat = hesaplama.kdv_hesapla(son_fiyat)
print(f”Son fiyat: {son_fiyat:.2f} TL”)
2. Dosya İşlemleri ve JSON Verileri
Gerçek uygulamalarda sıkça karşılaşılan JSON formatını işleme örneği:
import json# JSON dosyasını okuma
with open(‘veriler.json’, ‘r’, encoding=’utf-8′) as dosya:
veriler = json.load(dosya)
# Verileri işleme
for kullanici in veriler[‘kullanicilar’]:
print(f”{kullanici[‘ad’]} – {kullanici[’email’]}”)
# Yeni veri ekleme ve kaydetme
veriler[‘kullanicilar’].append({
“ad”: “Yeni Kullanıcı”,
“email”: “[email protected]”
})
with open(‘veriler.json’, ‘w’, encoding=’utf-8′) as dosya:
json.dump(veriler, dosya, ensure_ascii=False, indent=4)
3. Hata Yakalama ve Özel İstisnalar
Profesyonel uygulamalarda hata yönetimi kritik öneme sahiptir:
def bolme_islemi(sayi1, sayi2):
try:
sonuc = sayi1 / sayi2
except ZeroDivisionError:
raise ValueError("Sıfıra bölme hatası!")
except TypeError:
raise TypeError("Geçersiz veri tipi!")
else:
return sonuc
finally:
print("İşlem tamamlandı")# Kullanım
try:
print(bolme_islemi(10, 2))
print(bolme_islemi(10, 0))
except Exception as hata:
print(f”Hata: {hata}”)
4. Nesne Tabanlı Programlamaya Giriş
Orta seviye geliştiriciler için OOP kavramları:
class Urun:
def __init__(self, ad, fiyat, stok):
self.ad = ad
self.fiyat = fiyat
self.stok = stokdef fiyat_guncelle(self, yeni_fiyat):
if yeni_fiyat > 0:
self.fiyat = yeni_fiyat
else:
raise ValueError(“Fiyat negatif olamaz”)
def __str__(self):
return f”{self.ad} – {self.fiyat} TL ({self.stok} adet)”
# Kullanım
telefon = Urun(“Akıllı Telefon”, 5000, 50)
print(telefon)
telefon.fiyat_guncelle(5500)
print(telefon)
5. Web İstekleri ve API Kullanımı
Gerçek dünya uygulamalarında API’lerle çalışma:
import requestsdef havadurumu_al(sehir):
api_url = f”https://api.openweathermap.org/data/2.5/weather?q={sehir}&appid=API_KEY&units=metric”
try:
yanit = requests.get(api_url)
yanit.raise_for_status() # Hata durumunda istisna fırlat
veriler = yanit.json()
return {
“sehir”: veriler[‘name’],
“sicaklik”: veriler[‘main’][‘temp’],
“durum”: veriler[‘weather’][0][‘description’]
}
except requests.exceptions.RequestException as hata:
print(f”API isteği başarısız: {hata}”)
return None
# Kullanım
sonuc = havadurumu_al(“İstanbul”)
if sonuc:
print(f”{sonuc[‘sehir’]}: {sonuc[‘sicaklik’]}°C, {sonuc[‘durum’]}”)
Bu orta seviye Python kod örnekleri, gerçek projelerde karşılaşacağınız senaryolara hazırlanmanızı sağlar. Her örnek, belirli bir problemi çözmeye odaklanmış ve gerçek hayatta kullanılan en iyi uygulamaları yansıtıyor. Kodları inceleyerek, Python’un güçlü özelliklerini nasıl etkili bir şekilde kullanabileceğinizi öğreneceksiniz.
İleri Seviye Python Kod Örnekleri
İleri seviye Python geliştiricileri için kod örnekleri, gerçek dünya problemlerini çözmek üzere tasarlanmış sofistike teknikleri içerir. Bu aşamada, performans optimizasyonu, karmaşık veri yapıları ve sistem entegrasyonu gibi konular ön plana çıkar.
1. Decorator Kullanımı
Fonksiyonların davranışlarını değiştirmek için decoratorlar kritik öneme sahiptir:
def zamanlayici(func):
import time
def wrapper(*args, **kwargs):
baslangic = time.time()
sonuc = func(*args, kwargs)
sure = time.time() - baslangic
print(f"{func.__name__} {sure:.4f} saniyede tamamlandı")
return sonuc
return wrapper@zamanlayici
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10))
2. Generator ve Iteratorler
Bellek verimliliği için generatorlar kullanılır:
def sonsuz_sayilar():
num = 0
while True:
yield num
num += 1sayac = sonsuz_sayilar()
print(next(sayac)) # 0
print(next(sayac)) # 1
3. Paralel Programlama**
Çoklu işlemler için threading ve multiprocessing:
from concurrent.futures import ThreadPoolExecutordef kare_al(x):
return x * x
sayilar = [1, 2, 3, 4, 5]
with ThreadPoolExecutor() as executor:
sonuclar = list(executor.map(kare_al, sayilar))
print(sonuclar) # [1, 4, 9, 16, 25]
4. Metaprogramming
Dinamik kod oluşturma teknikleri:
class Singleton(type):
_instances = {}
def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super().__call__(*args, kwargs)
return cls._instances[cls]class Veritabani(metaclass=Singleton):
pass
db1 = Veritabani()
db2 = Veritabani()
print(db1 is db2) # True
5. Asenkron Programlama**
I/O ağırlıklı uygulamalar için async/await:
import asyncioasync def veri_cek(url):
print(f”{url} verisi çekiliyor…”)
await asyncio.sleep(1)
return f”{url} verisi alındı”
async def main():
taskler = [veri_cek(f”api{i}.com”) for i in range(3)]
sonuclar = await asyncio.gather(*taskler)
print(sonuclar)
asyncio.run(main())
Bu örnekler, Python’un ileri düzey özelliklerini gerçek projelerde nasıl uygulayacağınızı gösterir. Her teknik, belirli bir performans veya tasarım problemi çözmek üzere optimize edilmiştir. Kodları inceleyerek, Python’un güçlü yönlerini nasıl etkili bir şekilde kullanabileceğinizi öğreneceksiniz.
Gerçek Hayat Problemlerine Çözümler
Python’un gerçek dünya problemlerini çözmedeki gücü, pratik uygulamalarla ortaya çıkar. İşte günlük iş akışlarını optimize eden, veri işleme sorunlarını çözen ve otomasyon sağlayan Python kod örnekleri:
1. Toplu Dosya Yeniden Adlandırma
Fotoğraf veya belge koleksiyonlarını düzenlemek için:
import osdef dosya_yeniden_adlandir(klasor, yeni_ad=”dosya_”, uzanti=”.jpg”):
for index, dosya in enumerate(os.listdir(klasor)):
eski_yol = os.path.join(klasor, dosya)
yeni_ad_full = f”{yeni_ad}{index+1:03d}{uzanti}”
yeni_yol = os.path.join(klasor, yeni_ad_full)
os.rename(eski_yol, yeni_yol)
print(f”{dosya} → {yeni_ad_full}”)
# Kullanım: dosya_yeniden_adlandir(“resimler”, “tatil_”)
2. Excel Verilerini Otomatik Raporlama
Pandas ile veri analizi ve raporlama:
import pandas as pddef satis_raporu_olustur(dosya_yolu):
df = pd.read_excel(dosya_yolu)
rapor = {
“toplam_satis”: df[“Tutar”].sum(),
“en_cok_satan”: df.groupby(“Urun”)[“Miktar”].sum().idxmax(),
“ortalama_satis”: df[“Tutar”].mean()
}
return rapor
# Kullanım: print(satis_raporu_olustur(“satislar.xlsx”))
3. Web Sitesi Durum Kontrolü
Çoklu URL’lerin durumunu kontrol eden script:
import requestsdef site_durumu_kontrol(url_listesi):
sonuclar = {}
for url in url_listesi:
try:
yanit = requests.get(url, timeout=5)
sonuclar[url] = yanit.status_code
except requests.RequestException:
sonuclar[url] = “Erişilemedi”
return sonuclar
# Kullanım: print(site_durumu_kontrol([“https://google.com”, “https://github.com”]))
4. E-posta Otomasyonu
SMTP ile toplu e-posta gönderimi:
import smtplib
from email.mime.text import MIMETextdef eposta_gonder(alici, konu, mesaj, gonderici=”[email protected]”):
msg = MIMEText(mesaj)
msg[‘Subject’] = konu
msg[‘From’] = gonderici
msg[‘To’] = alici
with smtplib.SMTP(“smtp.sirket.com”, 587) as sunucu:
sunucu.starttls()
sunucu.login(“kullanici”, “sifre”)
sunucu.send_message(msg)
# Kullanım: eposta_gonder(“[email protected]”, “Bilgilendirme”, “Merhaba…”)
5. Veritabanı Yedekleme
SQLite veritabanı yedekleme scripti:
import sqlite3
import shutil
from datetime import datetimedef veritabani_yedekle(orjinal_db, yedek_klasoru=”yedekler”):
tarih = datetime.now().strftime(“%Y%m%d_%H%M%S”)
yedek_ad = f”{yedek_klasoru}/yedek_{tarih}.db”
shutil.copy2(orjinal_db, yedek_ad)
print(f”Yedek oluşturuldu: {yedek_ad}”)
# Yedek doğrulama
try:
conn = sqlite3.connect(yedek_ad)
conn.execute(“SELECT 1”).fetchone()
print(“Yedek doğrulandı”)
except sqlite3.Error:
print(“Yedek hatalı!”)
finally:
conn.close()
# Kullanım: veritabani_yedekle(“veritabani.db”)
Bu örnekler, Python’un iş hayatındaki gerçek sorunlara nasıl çözüm sunduğunu gösterir. Her kod parçası, belirli bir iş sürecini otomatikleştirmek veya verimliliği artırmak için tasarlanmıştır. Gerçek projelerde bu örnekleri temel alarak daha karmaşık çözümler geliştirebilirsiniz.
Python Kod Örnekleri ile Proje Geliştirme
Python kod örnekleriyle proje geliştirmek, teorik bilgiyi pratik uygulamalara dönüştürmenin en etkili yoludur. Gerçek projeler geliştirerek hem Python becerilerinizi pekiştirir hem de portföyünüzü güçlendirirsiniz. İşte farklı alanlarda uygulayabileceğiniz proje örnekleri ve geliştirme sürecinde dikkat etmeniz gerekenler:
1. Basit Web Uygulaması (Flask ile Blog Sistemi)
Web geliştirmeye giriş için ideal bir proje:
from flask import Flask, render_template, request, redirect
import sqlite3app = Flask(__name__)
def veritabani_baglanti():
return sqlite3.connect(‘blog.db’)
@app.route(‘/’)
def anasayfa():
conn = veritabani_baglanti()
cursor = conn.cursor()
cursor.execute(“SELECT * FROM yazilar ORDER BY tarih DESC”)
yazilar = cursor.fetchall()
conn.close()
return render_template(‘index.html’, yazilar=yazilar)
@app.route(‘/yazi-ekle’, methods=[‘GET’, ‘POST’])
def yazi_ekle():
if request.method == ‘POST’:
baslik = request.form[‘baslik’]
icerik = request.form[‘icerik’]
conn = veritabani_baglanti()
cursor = conn.cursor()
cursor.execute(“INSERT INTO yazilar (baslik, icerik) VALUES (?, ?)”,
(baslik, icerik))
conn.commit()
conn.close()
return redirect(‘/’)
return render_template(‘yazi_ekle.html’)
if __name__ == ‘__main__’:
app.run(debug=True)
2. Veri Analizi Projesi (Pandas ile Satış Analizi)
Gerçek veri setleri üzerinde çalışma:
import pandas as pd
import matplotlib.pyplot as pltdef satis_analizi(dosya_yolu):
# Veri yükleme
df = pd.read_csv(dosya_yolu, parse_dates=[‘Tarih’])
# Temel analizler
aylik_satis = df.groupby(df[‘Tarih’].dt.to_period(‘M’))[‘Tutar’].sum()
# Görselleştirme
plt.figure(figsize=(10, 6))
aylik_satis.plot(kind=’bar’)
plt.title(‘Aylık Satış Trendleri’)
plt.ylabel(‘Toplam Satış (TL)’)
plt.xlabel(‘Ay’)
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig(‘aylik_satis.png’)
plt.show()
return {
‘toplam_satis’: df[‘Tutar’].sum(),
‘en_iyisi_ay’: aylik_satis.idxmax(),
‘ortalama_satis’: df[‘Tutar’].mean()
}
# Kullanım: print(satis_analizi(‘satis_verileri.csv’))
3. Otomasyon Projesi (E-posta Yönetimi)
Günlük iş akışlarını optimize etme:
import imaplib
import email
from datetime import datetime, timedeltadef eposta_filtrele(kullanici, sifre, gun_sayisi=7):
# Bağlantı kurma
mail = imaplib.IMAP4_SSL(‘imap.gmail.com’)
mail.login(kullanici, sifre)
mail.select(‘inbox’)
# Tarih aralığı hesaplama
bugun = datetime.now()
baslangic = bugun – timedelta(days=gun_sayisi)
tarih_araligi = f”(SINCE {baslangic.strftime(‘%d-%b-%Y’)})”
# E-postaları alma
tip, veri = mail.search(None, tarih_araligi)
eposta_idleri = veri[0].split()
sonuclar = []
for eid in eposta_idleri:
tip, veri = mail.fetch(eid, ‘(RFC822)’)
raw_email = veri[0][1]
email_message = email.message_from_bytes(raw_email)
sonuclar.append({
‘gonderen’: email_message[‘From’],
‘konu’: email_message[‘Subject’],
‘tarih’: email_message[‘Date’]
})
mail.close()
mail.logout()
return sonuclar
# Kullanım: print(eposta_filtrele(‘[email protected]’, ‘sifre’))
Proje Geliştirme İpuçları:
- Küçük Başlayın: Büyük projeler yerine küçük, tamamlanabilir hedefler belirleyin
- Modüler Tasarım: Kodunuzu yeniden kullanılabilir fonksiyonlara ve modüllere bölün
- Hata Yönetimi: Gerçek uygulamalarda hata yönetimine özel önem verin
- Dokümantasyon: Kodunuzu ve projelerinizi iyi belgeleyin
- Sürüm Kontrolü: Git gibi araçları kullanarak proje geçmişinizi yönetin
Bu proje örnekleri, Python kod örnekleriyle gerçek dünya uygulamaları geliştirmenin temelini oluşturur. Her proje, farklı bir Python özelliğini veya kütüphanesini vurgular ve gerçek iş ihtiyaçlarına yönelik çözümler sunar. Projeleri kendi ihtiyaçlarınıza göre özelleştirerek Python becerilerinizi bir üst seviyeye taşıyabilirsiniz.
Python Kod Örnekleri için En İyi Uygulama Yöntemleri
Python kod örnekleriyle çalışırken en iyi uygulamaları benimsemek, hem kod kalitenizi artırır hem de projelerinizin sürdürülebilirliğini sağlar. İşte profesyonel Python geliştiricilerinin kullandığı kanıtlanmış yöntemler:
1. Kod Okunabilirliği ve Standartları
- PEP 8 Kurallarına Uyun: Python’un resmi stil kılavuzunu takip edin (4 boşluk girintisi, 79 karakter sınırı, açıklayıcı isimler)
- Dokümantasyon Stringleri Kullanın: Fonksiyonların ne yaptığını açıklayan docstring’ler ekleyin
def hesapla_kdv(tutar, oran=0.18):
"""Verilen tutara KDV ekleyen fonksiyon.Args:
tutar (float): KDV’siz tutar
oran (float, optional): KDV oranı. Varsayılan 0.18.
Returns:
float: KDV’li tutar
“””
return tutar * (1 + oran)
2. Hata Yönetimi ve Debugging
- Özel İstisnalar Tanımlayın: Projeye özgü hata tipleri oluşturun
- Logging Kullanın: Hataları ve önemli olayları kaydedin
import logginglogging.basicConfig(filename=’uygulama.log’, level=logging.INFO)
try:
# Riskli işlem
except ValueError as e:
logging.error(f”Geçersiz veri hatası: {e}”)
raise
3. Performans Optimizasyonu
- List Comprehension Kullanın: Daha hızlı ve okunaklı döngüler için
# Yavaş yöntem
kareler = []
for i in range(10):
kareler.append(i2)# Hızlı yöntem
kareler = [i
2 for i in range(10)]- Generator’lar İle Bellek Kullanımını Azaltın: Büyük veri setleri için
def buyuk_dosya_oku(dosya_adi):
with open(dosya_adi) as f:
for satir in f:
yield satir.strip()4. Test Odaklı Geliştirme
- Unit Testler Yazın: Her fonksiyon için test senaryoları oluşturun
import unittestclass TestHesaplama(unittest.TestCase):
def test_kdv_hesapla(self):
self.assertEqual(hesapla_kdv(100), 118)
self.assertEqual(hesapla_kdv(100, 0.08), 108)
if __name__ == ‘__main__’:
unittest.main()
5. Sürüm Kontrolü ve İşbirliği
- Anlamlı Commit Mesajları Kullanın: “Fix: KDV hesaplama hatası düzeltildi” gibi
- .gitignore Dosyası Oluşturun: Gerekli olmayan dosyaları versiyon kontrolünden hariç tutun
6. Güvenlik En İyi Uygulamaları
- Giriş Doğrulama: Kullanıcı girişlerini her zaman doğrulayın
- Gizli Bilgileri Koruyun: API anahtarlarını ve şifreleri ortam değişkenlerinde saklayın
import os
from dotenv import load_dotenvload_dotenv()
API_KEY = os.getenv(‘API_KEY’)
7. Bağımlılık Yönetimi
- virtualenv Kullanın: Proje başına izole edilmiş ortamlar oluşturun
- requirements.txt Oluşturun: Proje bağımlılıklarını belgeleyin
pip freeze > requirements.txtBu yöntemler, Python kod örneklerinizin hem profesyonel hem de sürdürülebilir olmasını sağlar. Her birini projelerinize uygulayarak kod kalitenizi önemli ölçüde artırabilirsiniz.
Python Kod Örnekleri ile İleri Teknikler
Python’un ileri düzey teknikleri, basit scriptlerden öteye geçerek profesyonel uygulamalar geliştirmenizi sağlar. Bu teknikler, kodunuzun performansını artırırken aynı zamanda bakımını kolaylaştırır ve ölçeklenebilirliğini sağlar.
1. Decoratorlar ile Fonksiyonları Geliştirme
Decoratorlar, fonksiyonların davranışlarını değiştirmenin güçlü bir yoludur. Özellikle logging, yetkilendirme ve performans ölçümü için idealdir:
def zaman_olc(func):
import time
def wrapper(*args, **kwargs):
baslangic = time.perf_counter()
sonuc = func(*args, kwargs)
sure = time.perf_counter() - baslangic
print(f"{func.__name__} {sure:.6f} saniyede tamamlandı")
return sonuc
return wrapper@zaman_olc
def fibonacci(n):
return n if n <= 1 else fibonacci(n-1) + fibonacci(n-2)
2. Context Manager’lar ile Kaynak Yönetimi**
Dosya işlemleri ve veritabanı bağlantılarında kaynak yönetimini otomatikleştirir:
class VeritabaniBaglantisi:
def __enter__(self):
self.baglanti = sqlite3.connect('veritabani.db')
return self.baglantidef __exit__(self, exc_type, exc_val, exc_tb):
self.baglanti.close()
with VeritabaniBaglantisi() as db:
cursor = db.cursor()
cursor.execute(“SELECT * FROM urunler”)
3. Metaclass’lar ile Sınıf Oluşturma Kontrolü
Sınıf oluşturma sürecini özelleştirmek için kullanılır:
class SingletonMeta(type):
_instances = {}
def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super().__call__(*args, kwargs)
return cls._instances[cls]class Ayarlama(metaclass=SingletonMeta):
pass
4. Asenkron Programlama ile Performans Artışı**
I/O ağırlıklı işlemler için async/await kullanımı:
import aiohttp
import asyncioasync def veri_cek(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
async def main():
url_list = [“https://api1.com”, “https://api2.com”]
görevler = [veri_cek(url) for url in url_list]
sonuclar = await asyncio.gather(*gorevler)
5. C Extensions ile Performans Kritiği
Python kodunu C ile birleştirerek kritik bölümleri hızlandırma:
# setup.py
from distutils.core import setup, Extension
module = Extension('hesaplama', sources=['hesaplama.c'])
setup(name='HesaplamaModulu', ext_modules=[module])Bu teknikler, Python kod örneklerinizi profesyonel seviyeye taşımanızı sağlar. Her biri belirli bir problemi çözmek için optimize edilmiştir ve gerçek dünya uygulamalarında sıkça kullanılır. Doğru teknikleri doğru yerde kullanarak, hem kod kalitenizi artırabilir hem de uygulama performansınızı optimize edebilirsiniz.
Python Kod Örnekleri için Kaynaklar ve Topluluklar
Python kod örnekleriyle çalışırken doğru kaynaklara ve aktif topluluklara erişim, öğrenme sürecinizi hızlandırır ve gerçek dünya problemlerine çözüm bulmanızı kolaylaştırır. İşte Python geliştiricileri için en değerli kaynaklar ve topluluklar:
1. Resmi Dokümantasyon ve Eğitim Platformları
- [Python Resmi Dokümantasyonu](https://docs.python.org/3/): Her sürümün detaylı açıklamaları ve örnekleri
- [Real Python](https://realpython.com/): Pratik uygulamalı eğitimler ve güncel makaleler
- [Python.org Tutorials](https://wiki.python.org/moin/BeginnersGuide): Yeni başlayanlar için yapılandırılmış öğrenme yolu
2. Ücretsiz Öğrenme Platformları
- [freeCodeCamp Python](https://www.freecodecamp.org/learn/python/): Proje odaklı interaktif dersler
- [W3Schools Python](https://www.w3schools.com/python/): Hızlı referans ve örnekler
- [Automate the Boring Stuff](https://automatetheboringstuff.com/): Otomasyon odaklı pratik uygulamalar
3. Python Toplulukları ve Forumlar
- [Python Discord](https://discord.gg/python): Anlık yardım ve tartışma ortamı
- [r/learnpython](https://www.reddit.com/r/learnpython/): Soru-cevap ve proje paylaşımı
- [Python Forum](https://python-forum.io/): Deneyimli geliştiricilerden destek
4. Açık Kaynak Projeler ve GitHub
- [Awesome Python](https://github.com/vinta/awesome-python): En iyi Python kütüphaneleri ve araçları
- [Python GitHub Topluluğu](https://github.com/topics/python): Gerçek projeleri inceleme fırsatı
- [First Contributions](https://github.com/firstcontributions/first-contributions): Açık kaynak katkılarına giriş
5. Yerel ve Uluslararası Etkinlikler
- [PyCon Türkiye](https://python.org.tr/): Yıllık Python konferansı
- [Python Meetup Grupları](https://www.meetup.com/topics/python/): Yerel buluşmalar ve workshop’lar
- [PyLadies](https://www.pyladies.com/): Kadın geliştiriciler için destek ağı
6. YouTube Kanalları ve Podcast’ler
- [Corey Schafer](https://www.youtube.com/c/CoreySchafer): Derinlemesine Python eğitimleri
- [ArjanCodes](https://www.youtube.com/c/ArjanCodes): Modern Python uygulamaları
- [Talk Python To Me](https://talkpython.fm/): Python odaklı podcast
Bu kaynaklar, Python kod örnekleriyle çalışırken karşılaşacağınız her türlü soruya çözüm bulmanızı sağlar. Aktif topluluklara katılarak hem bilginizi paylaşabilir hem de diğer geliştiricilerden öğrenebilirsiniz. Unutmayın, en iyi öğrenme yolu pratik yapmak ve gerçek projeler geliştirmektir.
