Rapor Oluştur
Coddy'nin Python Journey'sinin Logic & Flow bölümünün bir parçası — ders 71 / 78.
Görev
ZorEnvanter sistemi halihazırda şu bileşenlere sahiptir:
- Şu özelliklere sahip küresel bir
inventorysözlüğü:- Anahtarlar öğe adlarıdır (dizeler)
- Değerler şunları içeren sözlüklerdir:
"price": Öğe fiyatı (float)"stock": Stoktaki mevcut miktar (tam sayı)
- Envantere yeni öğeler ekleyen bir
add_item(item, price, stock)fonksiyonu - Stok seviyesini güncelleyen bir
update_stock(item, quantity)fonksiyonu - Mevcut stok seviyesini döndüren bir
check_availability(item)fonksiyonu
Göreviniz, şunları yapan sales_report(sales) fonksiyonunu uygulamaktır:
- Şu özelliklere sahip bir
salessözlüğü alır:- Anahtarlar öğe adlarıdır
- Değerler satılan miktarlardır
- Satış sözlüğündeki her bir öğe için:
- Öğenin envanterde olup olmadığını kontrol eder
- Yeterli stok olup olmadığını kontrol eder
- Stok seviyelerini düşürerek envanteri günceller
- Fiyat ve satılan miktara göre geliri hesaplar
- Toplam geliri içeren biçimlendirilmiş bir dize döndürür
Şu özel hataları ele alın:
- Bir öğe envanterde yoksa şunu yazdırın:
"Error: Item '{item}' not found." - Yetersiz stok varsa şunu yazdırın:
"Error: Insufficient stock for '{item}'."
Çıktı şu şekilde biçimlendirilmiş bir dize olmalıdır: “Total revenue: ${total:.2f}”
Kodunuzun en altına aşağıdaki kod bloğunu ekleyin (veya değiştirin):
add_item("Apple", 0.5, 50)
add_item("Banana", 0.2, 60)
sales = {"Apple": 30, "Banana": 20, "Orange": 10} # Orange should print an error
print(sales_report(sales)) # Should output: Total revenue: $19.00
print(inventory)Kendin dene
inventory = {}
def add_item(item, price, stock):
if item in inventory:
print(f"Error: Item '{item}' already exists.")
return
try:
inventory[item] = {"price": float(price), "stock": int(stock)}
print(f"Item '{item}' added successfully.")
except ValueError:
print("Error: Price and stock must be numeric.")
def update_stock(item, quantity):
if item not in inventory:
print(f"Error: Item '{item}' not found.")
return
try:
new_stock = inventory[item]["stock"] + int(quantity)
if new_stock < 0:
print(f"Error: Insufficient stock for '{item}'.")
else:
inventory[item]["stock"] = new_stock
print(f"Stock for '{item}' updated successfully.")
except ValueError:
print("Error: Quantity must be an integer.")
def check_availability(item):
if item not in inventory:
return "Item not found"
return inventory[item]["stock"]
add_item("Apple", 0.5, 100)
add_item("Banana", 0.2, 50)
update_stock("Apple", -20)
update_stock("Banana", 30)
print(check_availability("Apple")) # Should return 80
print(check_availability("Banana")) # Should return 80
print(check_availability("Orange")) # Should return "Item not found"Logic & Flow bölümündeki tüm dersler
1Değişken Keşfi
SabitlerÇoklu Değişken AtamalarıDeğişken TakasıYer Tutucu DeğişkenlerSayıları YuvarlamaListe Tür Dönüşümü4Rehber Uygulaması
Menüyü GörüntüleKişi Ekle7Kümeler Bölüm 2
Matematiksel İşlemler Bölüm 1Matematiksel İşlemler Bölüm 2Özet - Hazine AvıAlt Kümeler ve Üst KümelerKümeler Üzerinde YinelemeÖzet - Turnuva Takipçisi10Temel List Comprehension Yapıları
SözdizimiBasit Listeler OluşturmaKoşul EklemeVeri Toplulaştırma KullanımıÖzet - Liste EviÖzet - Özgürlük Elementleri13Envanter Yönetim Sistemi
Projeye Genel BakışÖğe Ekle2Sözlükler Bölüm 1
Sözlük Nedir?Sözlük OluşturmaDeğerlere ErişmeSözlükleri DeğiştirmeÖzet - Tarif Yöneticisi5İleri Seviye Karar Yapıları
Ternary OperatörüÜyelik KontrolleriKimlik KontrolleriGirintileme HatalarıÖzet - Tatil Filtresi8Öğrenci Kayıt Yöneticisi
Projeye Genel BakışÖğrenci Ekle11İleri Seviye Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar Görevi - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Listeleri Toplama14Yüksek Mertebeden Fonksiyonlar
Map FonksiyonuFilter FonksiyonuÖzet - E-posta DoğrulayıcıÖzet - Sayı İşleyici3Sözlükler Bölüm 2
Sözlük Metotlarıİç İçe SözlüklerAnahtar KontrolüSözlüklerde DöngülerÖzet - Frekans Sayacı9İleri Düzey Veri Toplulaştırma
Toplam KullanımıMinimum ve Maksimumu BulmaVerileri Verimli SıralamaÖzet - Dictionary Sıralayıcı