Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إنشاء تقرير

جزء من قسم المنطق وتدفق التنفيذ في رحلة Python على Coddy. الدرس 71 من 78.

challenge icon

التحدي

صعب

يحتوي نظام المخزون بالفعل على هذه المكونات المنفذة:

  1. قاموس inventory عالمي حيث:
    • المفاتيح هي أسماء العناصر (سلاسل نصية)
    • القيم هي قواميس تحتوي على:
      • "price": سعر العنصر (float)
      • "stock": الكمية الحالية في المخزون (integer)
  2. دالة add_item(item, price, stock) تقوم بإضافة عناصر جديدة إلى المخزون
  3. دالة update_stock(item, quantity) تقوم بتحديث مستوى المخزون
  4. دالة check_availability(item) تعيد مستوى المخزون الحالي

مهمتك هي تنفيذ دالة sales_report(sales) التي:

  1. تأخذ قاموس sales حيث:
    • المفاتيح هي أسماء العناصر
    • القيم هي الكميات المباعة
  2. لكل عنصر في قاموس المبيعات:
    • تتحقق مما إذا كان العنصر موجوداً في المخزون
    • تتحقق مما إذا كان هناك مخزون كافٍ
    • تحدث المخزون عن طريق تقليل مستويات المخزون
    • تحسب الإيرادات بناءً على السعر والكمية المباعة
  3. تعيد سلسلة نصية منسقة مع إجمالي الإيرادات

تعامل مع هذه الأخطاء المحددة:

  • إذا لم يكن العنصر موجوداً في المخزون، اطبع: "Error: Item '{item}' not found."
  • إذا لم يكن هناك مخزون كافٍ، اطبع: "Error: Insufficient stock for '{item}'."

يجب أن يكون المخرج سلسلة نصية منسقة كالتالي: “Total revenue: ${total:.2f}”

 

أضف (استبدل) كتلة الكود التالية في أسفل الكود الخاص بك:

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)

جرّب بنفسك

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"

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم Python عبر الإنترنت