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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
python定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
python端口扫描系统实现方法
Nov 19 Python
Python中实现对list做减法操作介绍
Jan 09 Python
Django中使用locals()函数的技巧
Jul 16 Python
python读取LMDB中图像的方法
Jul 02 Python
Python根据成绩分析系统浅析
Feb 11 Python
python3 webp转gif格式的实现示例
Dec 10 Python
Python双链表原理与实现方法详解
Feb 22 Python
python3注册全局热键的实现
Mar 22 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
python实现画图工具
Aug 27 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
zf框架的registry(注册表)使用示例
2014/03/13 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
Python常用知识点汇总
2016/05/08 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
详解CSS3:overflow属性
2020/11/17 HTML / CSS
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
EJB的几种类型
2012/08/15 面试题
历史学专业毕业生求职信
2013/09/27 职场文书
可口可乐广告词
2014/03/20 职场文书
小学作文评语大全
2014/04/21 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript