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代码调试的几种方法总结
Apr 15 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
Python中多线程的创建及基本调用方法
Jul 08 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Python 装饰器使用详解
Jul 29 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
python中update的基本使用方法详解
Jul 17 Python
python 回溯法模板详解
Feb 26 Python
运行python提示no module named sklearn的解决方法
Nov 29 Python
python numpy中setdiff1d的用法说明
Apr 22 Python
python+opencv实现视频抽帧示例代码
Jun 11 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的十大要点(上)
2009/02/04 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
javaScript语法总结
2016/11/25 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
python实现图像识别功能
2018/01/29 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
python简单实现插入排序实例代码
2020/12/16 Python
Python的logging模块基本用法
2020/12/24 Python
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
几道PHP面试题
2013/04/14 面试题
夜不归宿检讨书
2014/02/25 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
人力资源管理专业应届生求职信
2014/04/24 职场文书
前台接待岗位职责
2015/02/03 职场文书
部队2015年终工作总结
2015/04/02 职场文书
活动宣传稿范文
2015/07/23 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang