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指定路径寻找符合匹配模式文件
May 22 Python
python3 读写文件换行符的方法
Apr 09 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
Python数据类型之Tuple元组实例详解
May 08 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
Python脚本去除文件的只读性操作
Mar 05 Python
Python编写万花尺图案实例
Jan 03 Python
Python时间操作之pytz模块使用详解
Jun 14 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
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
python实现点对点聊天程序
2018/07/28 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
2014年学校领导班子对照检查材料
2014/09/19 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers