Home  >  Article  >  Backend Development  >  Python implements supermarket scanner billing

Python implements supermarket scanner billing

不言
不言Original
2018-06-01 15:16:352177browse

This article mainly introduces in detail the python implementation of supermarket scanner billing, which has a certain reference value. Interested friends can refer to

python implementation The supermarket code scanner billing program mainly uses the supermarket code scanner to scan the barcode of the product, read the product information, and implement the billing function. The main technologies used are serial communication and database operations. The required environments include: python environment, mysql, python library (serial, MySQLdb), etc.

The main process of this program is: use a barcode scanner to scan the product barcode, obtain the product barcode through serial communication, obtain product information through the barcode, display the product information and calculate the total cost. The product information is stored in the database, which can be imported in advance or manually. Mine is imported in advance (you can also import the information while scanning). The information imported into the database is as follows:

The program code is as follows:

#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()

Since I have just started learning python, the code specification is not very good yet. I hope everyone can point it out. Finally The program runs as follows:

Chinese can be used in my program (it didn’t display at the beginning? It just displayed garbled characters). I talked about this problem in my previous blog, Need to deal with the database and how the data read from the database is encoded. If you see any mistakes or have any comments, please leave a message.

Related recommendations:

Python implementation example of how to calculate the value of pi to any position

Python implementation of a simple Taobao flash sale function

The above is the detailed content of Python implements supermarket scanner billing. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn