python实现超市扫码仪计费


Posted in Python onMay 30, 2018

python实现超市扫码仪计费的程序主要是使用超市扫码仪扫商品的条形码,读取商品信息,实现计费功能。主要用到的技术是串口通信,数据库的操作,需要的环境包括:python环境,mysql,python库(serial,MySQLdb)等等。

这个程序的主要过程是:使用扫码仪扫描商品条形码,通过串口通信获取商品条形码,通过该条形码获取商品信息,显示该商品信息并统计总费用。其中商品信息保存在数据库中,可事先导入或者手动导入商品信息,而我的在这里是事先导入的(也可以边扫边倒入信息),导入到数据库中的信息如下:

python实现超市扫码仪计费

程序代码如下:

#coding:utf8 
 
import serial 
import MySQLdb 
 
ser = serial.Serial('COM5',9600) 
 
 
#获取一行信息 
def recv(serial): 
 data = '' 
 while serial.inWaiting() > 0: 
  data += serial.read(1) 
  
 return data 
 
 
def GetInfo(db,data): 
 data = data[0:-1] #最后面有一个空格,需要去掉,否则会影响读数据库 
 print data 
 ret = 0.0 
 try: 
  cur = db.cursor() 
  sql="set names utf8" #这一条语句是告诉数据库编码方式为 utf8 
  cur.execute(sql) 
 
  sql = "select * from productinfo where code=%s"%(data) 
  #print sql 
  cur.execute(sql) 
  #sql = "select * from productinfo where(code=%s)" 
  #cur.execute(sql,data)   
  results = cur.fetchall() 
  #print results 
  for row in results: 
   code = row[0] 
   #print code 
   price = row[1] 
   #print price 
   info = row[2] 
   #print info 
   ret = price 
   #解析出来的信息可能为中文,直接print肯定是不行的,需要转化为windows下的GBK编码 
   print 'coding=',row[0],'price=',row[1],'info=',info.decode('UTF-8').encode('GBK')    
 except: 
  print 'it has no infomation about %s'%(data) 
 
 return ret 
 
 
db = MySQLdb.connect('localhost','root','',"zou",3306,'utf8') 
cursor = db.cursor() 
 
#cursor.execute("DROP TABLE IF EXISTS productinfo") 
 
''''' 
sql="""CREATE TABLE productinfo( 
  code CHAR(18), 
  price double(9,2), 
  info CHAR(25))""" 
cursor.execute(sql) 
''' 
   
sum = 0.0   
while True: 
 data = recv(ser) 
 if data != '': 
  #print data 
  sum += GetInfo(db,data) 
  print '总付款:',sum 
  
 
db.close() 
ser.close()

由于刚刚开始学习python,所以代码规范上做的还不是很好,希望大家多多指出,最后程序的运行如下:

python实现超市扫码仪计费

其中我的程序中可以使用中文(刚刚开始不是显示?就是显示乱码),这个问题我在前面的博客中谈论过,需要处理数据库以及从数据库读取的数据的编码方式。若是大家看出什么错误或是有意见的话,欢饮大家留言。

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

Python 相关文章推荐
Python实现获取磁盘剩余空间的2种方法
Jun 07 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
May 26 Python
tensorflow 获取变量&打印权值的实例讲解
Jun 14 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
利用python开发app实战的方法
Jul 09 Python
Python Web框架之Django框架Form组件用法详解
Aug 16 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
python 实现return返回多个值
Nov 19 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
Python检测端口IP字符串是否合法
Jun 05 Python
pycharm永久激活超详细教程
Oct 29 Python
python 多线程爬取壁纸网站的示例
Feb 20 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 #Python
多个应用共存的Django配置方法
May 30 #Python
python实现支付宝当面付(扫码支付)功能
May 30 #Python
详解Python3.6安装psutil模块和功能简介
May 30 #Python
python3之模块psutil系统性能信息使用
May 30 #Python
python批量导入数据进Elasticsearch的实例
May 30 #Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 #Python
You might like
php实现监听事件
2013/11/06 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
php curl发送请求实例方法
2019/08/01 PHP
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
程序员机试试题汇总
2012/03/07 面试题
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
商务主管岗位职责
2013/12/08 职场文书
十八届三中全会感言
2014/03/10 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
大型营销活动计划书
2014/04/28 职场文书
法人代表证明书
2014/09/18 职场文书
2015年推普周活动方案
2015/05/06 职场文书
关于幸福的感言
2015/08/03 职场文书
工作后的感想
2015/08/07 职场文书
幼儿园大班教师评语
2019/06/21 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书