Menu
CoddyTech

Ôn tập: lỗi trong giỏ hàng

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 66 trên 78.

challenge icon

Thử thách

Trung bình

Tạo một chương trình mô phỏng giỏ hàng với xử lý lỗi. Nhiệm vụ của bạn là:

  1. Tạo một hàm có tên handle_shopping_cart để xử lý các đơn hàng của khách hàng
  2. Hàm này cần nhận một danh sách chuỗi đơn hàng theo định dạng "item:quantity"
  3. Xử lý từng đơn hàng bằng cách:
    • Tách chuỗi đầu vào để lấy mặt hàng và số lượng
    • Chuyển số lượng thành số nguyên
    • Thêm mặt hàng vào từ điển giỏ hàng, với số lượng làm giá trị
    • Nếu mặt hàng đã có trong giỏ, cộng số lượng mới vào số lượng hiện có
  4. Xử lý các lỗi cụ thể sau:
    • Nếu định dạng đầu vào không đúng (thiếu dấu hai chấm), in ra "Invalid format: {order}"
    • Nếu số lượng không phải là một số hợp lệ, in ra "Invalid quantity: {order}"
    • Nếu số lượng là số âm, in ra "Negative quantity not allowed: {order}"
  5. Trả về từ điển giỏ hàng đã hoàn chỉnh

Kiểm tra định dạng và số lượng âm bằng if. Chỉ thao tác chuyển số lượng thành số nguyên mới có thể gây lỗi, vì vậy hãy in "Invalid quantity: {order}" trong except ValueError. Giữ lại khối except Exception as e cuối cùng làm lưới an toàn và in "Unexpected error: {e}" tại đó.

Tự làm thử

def handle_shopping_cart(orders):
    # Tạo một từ điển (dictionary) rỗng cho giỏ hàng
    cart = {}

    # Xử lý từng đơn hàng trong danh sách (list)
    for order in orders:
        try:
            # Tách đơn hàng, kiểm tra định dạng và số lượng, rồi thêm vào giỏ hàng
            pass

        except ValueError:
            # Số lượng không phải là số
            pass

        except Exception as e:
            # Bất kỳ điều gì ngoài dự kiến
            pass

    # Trả về giỏ hàng đã hoàn tất
    return cart

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Python online