Python 使用类模拟一个在线购物车,支持添加商品、删除商品等操作
我们将使用 Python 类来模拟一个在线购物车。购物车将支持添加商品、删除商品、查看购物车内容以及计算总价等功能。
实例
class ShoppingCart:
def __init__(self):
self.items = []
def add_item(self, name, price, quantity=1):
self.items.append({'name': name, 'price': price, 'quantity': quantity})
def remove_item(self, name):
self.items = [item for item in self.items if item['name'] != name]
def view_cart(self):
if not self.items:
print("Your shopping cart is empty.")
else:
for item in self.items:
print(f"{item['name']} - ${item['price']} x {item['quantity']}")
def calculate_total(self):
return sum(item['price'] * item['quantity'] for item in self.items)
# 示例使用
cart = ShoppingCart()
cart.add_item("Apple", 0.5, 3)
cart.add_item("Banana", 0.3, 5)
cart.view_cart()
print(f"Total: ${cart.calculate_total()}")
cart.remove_item("Banana")
cart.view_cart()
print(f"Total: ${cart.calculate_total()}")
def __init__(self):
self.items = []
def add_item(self, name, price, quantity=1):
self.items.append({'name': name, 'price': price, 'quantity': quantity})
def remove_item(self, name):
self.items = [item for item in self.items if item['name'] != name]
def view_cart(self):
if not self.items:
print("Your shopping cart is empty.")
else:
for item in self.items:
print(f"{item['name']} - ${item['price']} x {item['quantity']}")
def calculate_total(self):
return sum(item['price'] * item['quantity'] for item in self.items)
# 示例使用
cart = ShoppingCart()
cart.add_item("Apple", 0.5, 3)
cart.add_item("Banana", 0.3, 5)
cart.view_cart()
print(f"Total: ${cart.calculate_total()}")
cart.remove_item("Banana")
cart.view_cart()
print(f"Total: ${cart.calculate_total()}")
代码解析:
__init__
方法初始化购物车,创建一个空列表items
来存储商品。add_item
方法用于向购物车中添加商品,接受商品名称、价格和数量(默认为1)作为参数,并将其添加到items
列表中。remove_item
方法用于从购物车中删除指定名称的商品,使用列表推导式来过滤掉不需要的商品。view_cart
方法用于查看购物车中的商品,如果购物车为空,则提示购物车为空;否则,遍历items
列表并打印每个商品的详细信息。calculate_total
方法用于计算购物车中所有商品的总价,通过列表推导式和sum
函数实现。
输出结果:
Apple - $0.5 x 3 Banana - $0.3 x 5 Total: $2.4 Apple - $0.5 x 3 Total: $1.5
点我分享笔记