python实现超市管理系统(后台管理)


Posted in Python onOctober 25, 2019

本文实例为大家分享了python实现超市管理系统的具体代码,供大家参考,具体内容如下

这个相比上个程序简单很多,首先他没有太过复杂的逻辑关系,它的逻辑线条很清晰,你能很清楚的知道要做什么,只要往自己想的方面实现就行,代码如下

# coding: utf-8
# 定义仓库
repository = dict()
# 定义购物清单对象
shop_list = []
# 定义仓库里商品数量
shangpin = [["1000001", "你好世界", 88.0, 10], \
["1000002", "疯狂python讲义", 69.0, 12],\
["1000003", "康复手册", 59.0, 188],\
["1000004", "疯狂Java讲义", 109.0, 56],\
["1000005", "疯狂Android讲义", 108.0, 100],\
["1000006", "世界起源", 77.0, 122]]
# 定义一个函数来初始化商品
def init_repository():
 # 遍历商品生成仓库dict字典
 for i in range(len(shangpin)) :
 repository[shangpin[i][0]] = shangpin[i]
#显示超市的商品清单,就是遍历代表仓库的dict字典
def show_goods():
 print("欢迎来到 哼嘿哈嘿乐园")
 print('哈嘿乐园的商品清单:')
 print("%13s%40s%10s%10s" % ("条码", "商品名称", "单价","数量"))
 # 遍历repository的所有value来显示商品清单
 for s in repository.values():
 s = tuple(s)
 print("%15s%40s%12s%12s" % s)
# 显示购物清单,就是遍历代表购物清单的list列表
def show_list():
 print("=" * 100)
 # 如果清单不为空的时候,输出清单的内容
 if not shop_list:
 print("还未购买商品")
 else:
 title = "%-5s|%15s|%40s|%10s|%4s|%10s" % \
  ("ID", "条码", "商品名称", "单价", "数量", "小计")
 print(title)
 print("-" * 100)
 # 记录总计的价钱
 sum = 0
 # 遍历代表购物清单的list列表
 for i, item in enumerate(shop_list,start=1):
  # 转换id为索引加1
  id = i 
  # 获取该购物项的第1个元素:商品条码
  code = item[0]
  # 获取商品条码读取商品,再获取商品的名称
  name = repository[code][1]
  # 获取商品条码读取商品,再获取商品的单价
  price = repository[code][2]
  # 获取该购物项的第2个元素:商品数量
  number = item[1]
  # 小计
  amount = price * number
  # 计算总计
  sum = sum + amount
  line = "%-5s|%17s|%40s|%12s|%6s|%12s" % \
  (id, code, name, price, number, amount)
  print( line )
 print("-" * 100)
 print("    总计: " , sum)
 print("=" * 100)
# 添加购买商品,就是向代表用户购物清单的list列表中添加一项。
def add():
 # 等待输入条码
 code = input("请输入商品的条码:\n")
 # 没有找到对应的商品,条码错误
 if code not in repository:
 print("条码错误,请重新输入")
 return 
 # 根据条码找商品
 goods = repository[code]
 # 等待输入数量
 number = input("请输入购买数量:\n")
 # 把商品和购买数量封装成list后加入购物清单
 shop_list.append([code, int(number)])
# 修改购买商品的数量,就是修改代表用户购物清单的list列表的元素
def edit():
 id = input("请输入要修改的购物明细项的ID:\n")
 # id减1得到购物明细项的索引
 index = int(id) - 1
 # 根据索引获取某个购物明细项
 item = shop_list[index]
 # 提示输入新的购买数量
 number = input("请输入新的购买数量:\n")
 # 修改item里面的number
 item[1] = int(number)
# 删除购买的商品明细项,就是删除代表用户购物清单的list列表的一个元素。
def delete():
 id = input("请输入要删除的购物明细项的ID: ")
 index = int(id) - 1
 # 直接根据索引从清单里面删除掉购物明细项
 del shop_list[index]
def payment():
 # 先打印清单
 show_list()
 print('\n' * 3)
 print("欢迎下次光临")
 # 退出程序
 import os
 os._exit(0) 
# 后台添加商品函数
def adds():
 # 获取要添加的商品信息
 a = input("请输入商品条码:")
 b = input('请输入商品名称:')
 c = input('请输入商品单价:')
 d = input('请输入商品数量:')
 # 添加到商品列表
 shangpin.append([a,b,c,d])
 # 重新打印商品清单
 init_repository()
 show_goods()
# 后天修改商品属性函数
def edits():
 a = input("请输入商品条码:")
 # 获取此商品条码的新的值
 if a in repository.keys():
 e = input("请输入修改后商品名字:")
 f = input("请输入修改后商品单价:")
 g = input("请输入修改后商品数量:")
 repository.update({a:[a,e,f,g]})
 print(repository[a])
 show_goods()
 else:
 print('输入条码有误')
def deletes():
 h = input('请输入您要下架商品条码:')
 # 直接根据条码从仓库里面删除掉此商品
 repository.pop(h)
 show_goods()
# 重新打印商品清单
def show_good():
 show_goods()
# 后台支持的操作
cmd_dicts = {'a': adds, 'e': edits, 'd': deletes, 's': show_good, 'q': quit}
def root():
 # 先打印清单
 show_goods()
 print("欢迎进入超市货品管理平台")
 print("=" * 100)
 while True:
 cmds = input("后台操作指令: \n" +
  " 添加商品(a) 修改商品(e) 删除商品(d) 全部商品(s) 退出(q)\n") 
 if cmds == 'q' :
  return
 elif cmds not in cmd_dicts:
  print("好好玩,行吗!")
 else:
  cmd_dicts[cmds]()
# 用户所支持的操作
cmd_dict = {'a': add, 'e': edit, 'd': delete, 'p': payment, 's': show_goods, 'r': root }
# 初始仓库并展示
init_repository()
show_goods()
# 显示命令提示
def show_command():
 # 等待命令
 cmd = input("用户操作指令: \n" +
 " 添加(a) 修改(e) 删除(d) 结算(p) 超市商品(s) 后台管理(r)\n")
 # 如果用户输入的字符没有对应的命令 
 if cmd not in cmd_dict:
 print("不要玩,好不好!")
 else:
 cmd_dict[cmd]()
# 显示清单和操作命令提示
while True:
 show_list()
 show_command()

结语:

新增了后台处理,但是代码还是很不完善,还有很多问题存在,这只是大概的思路,希望能给小伙伴们点启发
小伙伴们如果有不清楚的地方请留言,我们共同进步

感谢:

本文源码参考疯狂python讲义

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python+mysql实现简单的web程序
Sep 11 Python
在Python中使用zlib模块进行数据压缩的教程
Jun 26 Python
Python制作简单的网页爬虫
Nov 22 Python
Python自动生产表情包
Mar 17 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
python3使用SMTP发送简单文本邮件
Jun 19 Python
python生成多个只含0,1元素的随机数组或列表的实例
Nov 12 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
Python中的list与tuple集合区别解析
Oct 12 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 #Python
python+mysql实现个人论文管理系统
Oct 25 #Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 #Python
Python二元赋值实用技巧解析
Oct 25 #Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 #Python
基于Python实现签到脚本过程解析
Oct 25 #Python
python实现大学人员管理系统
Oct 25 #Python
You might like
php面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
在宿舍喝酒的检讨书
2014/09/28 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle