Basit Inventory Sistemi Python'da Sıfırdan Kodlamak
Bir inventory sistemi, ürünlerin stok durumunu takip etmek için temel bir araçtır. Bunu Python'da basit bir sözlük ve fonksiyonlar kullanarak hızlı bir şekilde yapabilirsin.
Sistem üç ana işi yapacak: ürün ekle, stok güncelle ve tüm ürünleri listele. Bir ürün adı, fiyatı ve stok miktarı içerecek. Hata kontrolü de ekleyeceğiz.
1inventory = {}23def urun_ekle(ad, fiyat, stok):4if ad in inventory:5print(f"Hata: {ad} zaten var.")6return7inventory[ad] = {"fiyat": fiyat, "stok": stok}8print(f"{ad} eklendi.")910def stok_guncelle(ad, miktar):11if ad not in inventory:12print(f"Hata: {ad} bulunamadı.")13return14inventory[ad]["stok"] += miktar15print(f"{ad} stok güncellendi: {inventory[ad]['stok']}")1617def urun_sil(ad):18if ad in inventory:19del inventory[ad]20print(f"{ad} silindi.")21else:22print(f"Hata: {ad} bulunamadı.")2324def listele():25if not inventory:26print("Inventory boş.")27return28for ad, bilgi in inventory.items():29print(f"{ad}: Fiyat={bilgi['fiyat']} TL, Stok={bilgi['stok']}")3031# Kullanım32urun_ekle("Laptop", 5000, 10)33urun_ekle("Mouse", 150, 50)34urun_ekle("Klavye", 300, 30)35listele()36stok_guncelle("Laptop", -2)37listele()38urun_sil("Mouse")39listele()Beklenen çıktı:
1Laptop eklendi.2Mouse eklendi.3Klavye eklendi.4Laptop: Fiyat=5000 TL, Stok=105Mouse: Fiyat=150 TL, Stok=506Klavye: Fiyat=300 TL, Stok=307Laptop stok güncellendi: 88Laptop: Fiyat=5000 TL, Stok=89Mouse: Fiyat=150 TL, Stok=5010Klavye: Fiyat=300 TL, Stok=3011Mouse silindi.12Laptop: Fiyat=5000 TL, Stok=813Klavye: Fiyat=300 TL, Stok=30Kodun mantığı basit: her ürün bir sözlükte saklanıyor ve fonksiyonlar bu sözlüğü değiştiriyor. Negatif stok güncellemesi satış simüle ediyor.
Sık yapılan hata: stok güncellemede ürün var mı kontrolü yapmadan direkt işlem yapmak. Yukarıdaki kod bunu kontrol ediyor ve hata mesajı veriyordu. Gerçek bir sistem için bunu veritabanıyla (SQLite, PostgreSQL) değiştirirsin, ama bu örnek mantığı göstermek için yeterli.
4 yorum
stok güncellemede hata kontrolü yapmamak çok yaygın bir sorun ama burada iyi yapılmış
ya tamam da şu yazım meselesi başlarda küçük görünüyor projem büyüyünce bitti yahu sonra "Apple" ile "apple" ayrı ürün oluyor stok bölünüyor düzeltmeye çalışırken çıldırıyorsun
yazım farklılığı gerçek sorun ama bu kod için çok erken endişe
ama pratik kullanımda bunun yeterli olmadığı oluyor mesela aynı ürünü iki yere eklemişsen veya yazım farklıysa sistem bunu fark etmiyor büyüyünce sıkıntı çıkacak gibime geliyor