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爬取足球直播吧五大联赛积分榜
Jun 13 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
Python read函数按字节(字符)读取文件的实现
Jul 03 Python
python批量修改ssh密码的实现
Aug 08 Python
关于numpy.where()函数 返回值的解释
Dec 06 Python
Python print不能立即打印的解决方式
Feb 19 Python
Ubuntu16安装Python3.9的实现步骤
Dec 15 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
Jan 22 Python
python 列表推导和生成器表达式的使用
Feb 01 Python
在pyCharm中下载第三方库的方法
Apr 18 Python
Python中使用Opencv开发停车位计数器功能
Apr 04 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
php5中类的学习
2008/03/28 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
php app支付宝回调(异步通知)详解
2018/07/25 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
js实现图片拖动改变顺序附图
2014/05/13 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
python魔法方法-自定义序列详解
2016/07/21 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python enumerate函数的使用方法总结
2017/11/15 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
使用python实现飞机大战游戏
2020/03/23 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
会计自我鉴定
2014/02/04 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
党建工作整改措施
2014/10/28 职场文书
党员违纪检讨书
2015/05/05 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python