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图片转换二进制存入mysql
Dec 06 Python
linux系统使用python获取cpu信息脚本分享
Jan 15 Python
Python实现partial改变方法默认参数
Aug 18 Python
python 编程之twisted详解及简单实例
Jan 28 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
python实现监控阿里云账户余额功能
Dec 16 Python
Python基础之高级变量类型实例详解
Jan 03 Python
python导入库的具体方法
Jun 18 Python
python二维图制作的实例代码
Dec 03 Python
python中的对数log函数表示及用法
Dec 09 Python
python自动生成sql语句的脚本
Feb 24 Python
python 如何用map()函数创建多线程任务
Apr 07 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
对盗链说再见...
2006/10/09 PHP
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
使用Apache的rewrite
2021/03/09 Servers
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
最小二乘法及其python实现详解
2020/02/24 Python
师范大学毕业自我鉴定
2013/11/21 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
学生违纪检讨书200字
2014/10/21 职场文书
护士求职自荐信范文
2015/03/04 职场文书
2019 入党申请书范文
2019/07/10 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
vue router 动态路由清除方式
2022/05/25 Vue.js