news 2026/4/28 7:11:30

Python实战:购物车管理系统(附完整代码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python实战:购物车管理系统(附完整代码)

>作为一个 Python 刚学完字典的初学者,我尝试写了一个购物车系统。过程中踩了几个坑,分享出来给同样刚开始学 Python 的朋友

目录

一、我要实现什么功能

二、我为什么这么写

三、完整代码

1、访问dict获取元素

2、格式化字符串引号冲突

3、实现功能时,进行判断

五、总结

1、对学习帮助

2、下次可以尝试加文件保存数据,让购物车关掉后也不丢


一、我要实现什么功能

开发一个购物车管理系统,使用字典存储商品数据,通过控制台菜单交互。具体功能:

1. 添加购物车:录入商品名称、价格、数量,保存到购物车。
2. 修改购物车:输入要修改的商品名称,然后更新该商品的价格和数量。
3. 删除购物车:输入要删除的商品名称,从购物车中删除该商品。
4. 查询购物车:展示所有商品信息,格式为:商品名称: xxx, 商品价格: xxx, 商品数量: xxx。
5. 退出购物车:退出系统。

二、我为什么这么写

用字典存数据:因为我想通过“商品名称”直接找到价格和数量,字典最方便。
用 while True 循环菜单:希望用户操作完后还能继续选别的,直到选“退出”才结束。
用 match-case 判断选项:比 if-else 看起来整齐。

三、完整代码

menu = """ ############ 购物车系统 ############ # 1. 添加购物车 # # 2. 修改购物车 # # 3. 删除购物车 # # 4. 查询购物车 # # 5. 退出购物车 # ################################### """ shopping_cart = {} while True: print(menu) choice = input("请选择操作(1-5)") match choice: # 1. 添加购物车:录入商品名称、价格、数量,保存到购物车。 case "1": goods_name = input("请输入商品名称") if goods_name in shopping_cart: print("商品已存在,请重新选择操作") continue else: goods_price = float(input("请输入商品价格:")) goods_num = int(input("请输入商品数量:")) shopping_cart[goods_name] = {"price":goods_price, "num":goods_num} print("添加成功") case "2": # 2.修改购物车:输入要修改的商品名称,然后更新该商品的价格和数量。 goods_name = input("请输入商品名称") if goods_name not in shopping_cart: print("商品不存在,请重新选择操作") continue else: goods_price = float(input("请输入商品价格:")) goods_num = int(input("请输入商品数量:")) shopping_cart[goods_name] = {"price": goods_price, "num": goods_num} print("修改成功") case "3": #3.删除购物车:输入要删除的商品名称,从购物车中删除该商品。 goods_name = input("输入要删除的商品名称") if goods_name in shopping_cart: del shopping_cart[goods_name] print("删除成功") else: print("商品不存在,请重新选择操作") case "4": # 4.查询购物车:展示所有商品信息,格式为:商品名称: xxx, 商品价格: xxx, 商品数量: xxx。 for goods_name in shopping_cart.keys(): goods_info = shopping_cart[goods_name] print(f'商品名称:{goods_name},商品价格:{goods_info["price"]},商品数量:{goods_info["num"]}') case "5": print("bye") break case _: print("操作不合法")

注:shopping_cart的形式如{"商品名称":{"商品价格":价格,"商品数量":数量}}

四、我遇到的坑

1、访问dict获取元素
print(f'商品名称:{goods_name},商品价格:{goods_info["price"]},商品数量:{goods_info["num"]}')

在以上关键代码中,注意要对goods_info中获取价格与数量,不要对shopping_cart进行元素获取

或者也可以简化为以下代码:

for goods_name, goods_info in shooping_cart.items(): print(f'商品名称:{goods_name},商品价格:{goods_info["price"]},商品数量:{goods_info["num"]}')
2、格式化字符串引号冲突
print(f'商品名称:{goods_name},商品价格:{goods_info["price"]},商品数量:{goods_info["num"]}')

以上关键代码中f''中获取价格与数量时,使用双引号

3、实现功能时,进行判断

例如:实现添加购物车功能时,我刚开始没有对商品是否存在进行判断,没有功能完成后输出“添加成功字样”

五、总结

1、对学习帮助

系统性地提升我对dict,while。for的理解

dict的代码:

scores = {"数学":90, "语文":85} print(scores["数学"]) # 输出90

循环对比案例:

# while适合不确定次数的情况 while password != "123456": password = input("请输入密码") # for适合遍历已知集合 for subject in scores: print(subject)
2、下次可以尝试加文件保存数据,让购物车关掉后也不丢

这是我第一次写博客,代码可能不完美,欢迎指正。如果对你有帮助,点个赞吧~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 7:09:32

LLM Agent:重塑软件开发工作流的新范式

LLM Agent:重塑软件开发工作流的新范式 摘要 随着大语言模型(LLM)技术的飞速发展,从单纯的“对话机器人”向具备自主能力的“智能体(Agent)”演进已成为必然趋势。本文将深入探讨 LLM Agent 如何通过规划&a…

作者头像 李华
网站建设 2026/4/28 7:08:37

开源GPT生态资源全解析:从客户端到自动化代理的实践指南

1. 项目概述:一份开源GPT生态的“藏宝图”如果你是一名开发者、AI爱好者,或者正绞尽脑汁想在自己的产品里集成一个智能对话功能,那你大概率经历过这样的场景:面对ChatGPT API的官方文档,感觉功能强大但无从下手&#x…

作者头像 李华
网站建设 2026/4/28 7:04:22

外链代发是否有效?独立站买外链必看这3个防坑细节

花费五百美元购买两千个带锚文本的超链接,独立站后台自然搜索点击量停滞在每天十三个。服务商后台显示文章已发布在权重七十的科技博客上。查阅谷歌搜索控制台,新收录页面数量为零。买卖双方信息差让大量预算流失在无效的数字游戏里。 自然积累一个权威…

作者头像 李华
网站建设 2026/4/28 7:02:22

挖掘机柴油机多工况智能故障识别系统设计【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,查看文章底部二维码(1)基于CAN总线多源数据采集与分层工况判别模型&#…

作者头像 李华
网站建设 2026/4/28 7:02:21

3层指纹伪装术:Cursor试用限制的终极破解方案

3层指纹伪装术:Cursor试用限制的终极破解方案 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Your request has been blocked as our system has detected suspicious activity / Youve reached your trial request limit. / Too ma…

作者头像 李华