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原始字符串(raw strings)用法实例
Oct 13 Python
python实现比较两段文本不同之处的方法
May 30 Python
Python自动扫雷实现方法
Jul 25 Python
使用Python编写一个最基础的代码解释器的要点解析
Jul 12 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
pandas 快速处理 date_time 日期格式方法
Nov 12 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
Python上下文管理器全实例详解
Nov 12 Python
使用python客户端访问impala的操作方式
Mar 28 Python
Django项目uwsgi+Nginx保姆级部署教程实现
Apr 19 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
Python爬虫之Selenium鼠标事件的实现
Dec 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
php生成WAP页面
2006/10/09 PHP
swfupload 多文件上传实现代码
2008/08/27 PHP
php strftime函数的详细用法
2018/06/21 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
JavaScript prototype属性使用说明
2010/05/13 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
全面解析JavaScript中“&&”和“||”操作符(总结篇)
2016/07/18 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
Python subprocess库的使用详解
2018/10/26 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
利用python画出AUC曲线的实例
2020/02/28 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
大学生军训自我鉴定
2014/02/12 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
Python基于百度AI实现抓取表情包
2021/06/27 Python