import math
商品的信息字典
dict_commodity_info = {
101: {"name": "屠龙刀", "price": 10000},
102: {"name": "倚天剑", "price": 10000},
103: {"name": "九阴白骨爪", "price": 8000},
104: {"name": "九阳神功", "price": 9000},
105: {"name": "降龙十八掌", "price": 8000},
106: {"name": "乾坤大挪移", "price": 10000}
}
购买物品的列表
list_orders = []
def print_menu():
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=")
print("1、购买商品")
print("2、商品结算")
print("3、退出系统")
print("+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-")
def print_commodity_info():
"""
打印商品信息
:return:
"""
for key, value in dict_commodity_info.items():
print("编号:%d,名称:%s,单价:%d。" % (key, value["name"], value["price"]))
def choice_commodity():
"""
用户购买商品
:return: 用户购买商品编号和数量{"cid": 商品编号, "count": 数量}
"""
while True:
cid = int(input("请输入商品编号:"))
if cid in dict_commodity_info:
break
else:
print("该商品不存在")
count = int(input("请输入购买数量:"))
return {"cid": cid, "count": count}
def print_buying_info():
"""
打印用户购买的商品信息
:return:
"""
for item in list_orders:
commodity_id = dict_commodity_info[item["cid"]]
print("商品:%s,单价:%d,数量:%d." % (commodity_id["name"], commodity_id["price"], item["count"]))
calculate_total_price()
def calculate_total_price():
"""
计算用户购买商品的总价格
:return: 用户购买商品的总价格(total_price)
"""
total_price = 0
for item in list_orders:
commodity_id = dict_commodity_info[item["cid"]]
total_price += commodity_id["price"] * item["count"]
return total_price
def print_two_menu():
"""
打印二级菜单
:return:
"""
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=")
print("1、继续购物")
print("2、结束购物")
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=")
choice_two_menu()
def choice_two_menu():
"""
二级菜单的选择输入
:return:
"""
choice = input("请选择功能>")
if choice == "1":
buying()
elif choice == "2":
exit()
else:
print("输入错误,请重新输入")
print_two_menu()
def total_prices():
"""
用户输入价格,并计算价格
:return:
"""
if calculate_total_price() == 0:
print("你没有选择商品,请选择购买商品")
buying()
else:
while True:
input_money = float(input("总价%d元,请输入金额:" % calculate_total_price()))
if input_money >= calculate_total_price():
print("购买成功,找回:%d元。" % (input_money - calculate_total_price()))
list_orders.clear()
print_two_menu()
else:
moneys = order_pay_money(input_money)
if moneys >= calculate_total_price():
print("购买成功,找回:%d元。" % (moneys - calculate_total_price()))
list_orders.clear()
print_two_menu()
def order_pay_money(order_input_money):
"""
当第一次支付的金额不够时,进行第二次支付
:param order_input_money: 第一次支付的钱
:return: 第一次和第二次的总和
"""
total_money = order_input_money
total_moneys = 0
print("金额不足.还需要支付%d元-_-" % (math.fabs(total_money - calculate_total_price())))
two_input_money = float(input("请继续支付%d元 >" % (math.fabs(total_money - calculate_total_price()))))
total_moneys = total_money + two_input_money
return total_moneys
def buying():
"""
用户选择功能主菜单
:return:
"""
while True:
print_menu()
item = input("请选择功能>")
if item == "1":
print_commodity_info()
list_orders.append(choice_commodity())
print("添加到购物车。")
elif item == "2":
print_buying_info()
total_prices()
elif item == "3":
exit()
if __name__ == "__main__":
buying()
python实现购物车功能和结算功能
最新推荐文章于 2025-02-26 09:16:05 发布