Tạo báo cáo
Thuộc phần Logic và luồng chương trình trong hành trình Python của Coddy. Bài học 71 trên 78.
Thử thách
KhóHệ thống quản lý hàng tồn kho đã có các thành phần sau:
- Một từ điển
inventorytoàn cục, trong đó:- Các khóa là tên mặt hàng (chuỗi)
- Các giá trị là từ điển chứa:
"price": Giá của mặt hàng (số thực)"stock": Số lượng hàng tồn kho hiện tại (số nguyên)
- Hàm
add_item(item, price, stock)thêm mặt hàng mới vào kho - Hàm
update_stock(item, quantity)cập nhật mức tồn kho - Hàm
check_availability(item)trả về mức tồn kho hiện tại
Nhiệm vụ của bạn là triển khai hàm sales_report(sales), hàm này sẽ:
- Nhận một từ điển
sales, trong đó:- Các khóa là tên mặt hàng
- Các giá trị là số lượng đã bán
- Với mỗi mặt hàng trong từ điển doanh số:
- Kiểm tra xem mặt hàng có trong kho hay không
- Kiểm tra xem hàng tồn kho có đủ hay không
- Cập nhật kho bằng cách giảm số lượng hàng tồn kho
- Tính doanh thu dựa trên giá và số lượng đã bán
- Trả về một chuỗi có định dạng chứa tổng doanh thu
Xử lý các lỗi cụ thể sau:
- Nếu mặt hàng không có trong kho, hãy in ra:
"Error: Item '{item}' not found." - Nếu hàng tồn kho không đủ, hãy in ra:
"Error: Insufficient stock for '{item}'."
Đầu ra phải là một chuỗi có định dạng: “Total revenue: ${total:.2f}”
Thêm (thay thế) khối code sau vào cuối code của bạn:
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)Tự làm thử
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"Tất cả bài học trong Logic và luồng chương trình
4Ứng dụng sổ liên lạc
Hiển thị menuThêm liên hệ7Tập hợp phần 2
Phép toán toán học phần 1Phép toán toán học phần 2Ôn tập: Săn tìm kho báuTập hợp con và tập hợp chaLặp qua các tập hợpÔn tập: Theo dõi giải đấu10Tạo danh sách bằng cú pháp rút gọn cơ bản
Cú phápTạo danh sách đơn giảnThêm điều kiệnSử dụng phép tổng hợp dữ liệuÔn tập: Ngôi nhà của những danh sáchÔn tập: Những phần tử tự do13Hệ thống quản lý hàng tồn kho
Tổng quan dự ánThêm mặt hàng2Từ điển phần 1
Từ điển là gì?Tạo từ điểnTruy cập giá trịChỉnh sửa từ điểnÔn tập: Trình quản lý công thức nấu ăn5Ra quyết định nâng cao
Toán tử ba ngôiKiểm tra thành viênKiểm tra danh tínhLỗi thụt lềÔn tập: Bộ lọc kỳ nghỉ8Trình quản lý hồ sơ học sinh
Tổng quan dự ánThêm học sinh3Từ điển, phần 2
Phương thức của từ điểnTừ điển lồng nhauKiểm tra khóaLặp qua từ điểnÔn tập: Bộ đếm tần suất6Tập hợp phần 1
Tập hợp là gì?Các phép toán cơ bảnCác phương thức của tập hợpÔn tập: Xóa phần tử trùng lặp9Tổng hợp dữ liệu nâng cao
Sử dụng tổngTìm giá trị nhỏ nhất và lớn nhấtSắp xếp dữ liệu hiệu quảÔn tập: Bộ sắp xếp từ điểnTự luyện tập: Trình biên dịch Python online