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程序中的运用
Mar 02 Python
详解Python里使用正则表达式的ASCII模式
Nov 02 Python
python构建基础的爬虫教学
Dec 23 Python
python中selenium操作下拉滚动条的几种方法汇总
Jul 14 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
tensorflow estimator 使用hook实现finetune方式
Jan 21 Python
python3 deque 双向队列创建与使用方法分析
Mar 24 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
Python数据结构之队列详解
Mar 21 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/04/10 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
5 cool javascript apps
2007/03/24 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
vuex实现简易计数器
2016/10/27 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
Python shelve模块实现解析
2019/08/28 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
优秀干部获奖感言
2014/01/31 职场文书
《长相思》听课反思
2014/04/10 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
学生实习证明范文
2014/09/28 职场文书
前台接待岗位职责
2015/02/03 职场文书
解析原生JS getComputedStyle
2021/05/25 Javascript