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中利用原始套接字进行网络编程的示例
May 04 Python
详解Python编程中包的概念与管理
Oct 16 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
socket + select 完成伪并发操作的实例
Aug 15 Python
python机器学习实战之最近邻kNN分类器
Dec 20 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
Python简单获取二维数组行列数的方法示例
Dec 21 Python
python使用suds调用webservice接口的方法
Jan 03 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
Django模板标签{% for %}循环,获取制定条数据实例
May 14 Python
python3爬虫中多线程的优势总结
Nov 24 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 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
星际争霸任务指南——神族
2020/03/04 星际争霸
php的一些小问题
2010/07/03 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
php轻松实现中英文混排字符串截取
2014/05/28 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
浅谈Javascript 执行顺序
2013/12/18 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python比较两个列表大小的方法
2015/07/11 Python
python访问抓取网页常用命令总结
2017/04/11 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
对Python 数组的切片操作详解
2018/07/02 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
python scatter函数用法实例详解
2020/02/11 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
银行工作检查书范文
2014/01/31 职场文书
《恐龙》教学反思
2014/04/27 职场文书
化工实习心得体会
2014/09/09 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Golang 实现 WebSockets 之创建 WebSockets
2022/04/24 Golang