Maison >développement back-end >Tutoriel Python >Python implémente la facturation par scanner de supermarché

Python implémente la facturation par scanner de supermarché

不言
不言original
2018-06-01 15:16:352236parcourir

Cet article présente principalement python pour implémenter en détail la facturation du scanner de supermarché. Il a une certaine valeur de référence. Les amis intéressés peuvent se référer à la

implémentation de python. le scanner de code de supermarché pour scanner le code-barres du produit, lire les informations sur le produit et mettre en œuvre la fonction de facturation. Les principales technologies utilisées sont la communication série et les opérations de base de données. Les environnements requis incluent : l'environnement python, mysql, la bibliothèque python (série, MySQLdb), etc.

Le processus principal de ce programme est le suivant : utiliser un lecteur de codes-barres pour scanner le code-barres du produit, obtenir le code-barres du produit via une communication série, obtenir des informations sur le produit via le code-barres, afficher les informations sur le produit et calculer le coût total. Les informations sur le produit sont stockées dans la base de données, qui peuvent être importées à l'avance ou manuellement. La mienne est importée à l'avance (vous pouvez également importer les informations lors de la numérisation. Les informations importées dans la base de données sont les suivantes :

).

Le code du programme est le suivant :

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

Depuis que je viens de commencer à apprendre Python, la spécification du code n'est pas encore très bonne, j'espère que tout le monde. peux le souligner. , le programme final se déroule comme suit :

Parmi eux, le chinois peut être utilisé dans mon programme (il ne s'affichait pas au début ? C'est juste (caractères tronqués affichés). J'ai discuté de ce problème dans mon blog précédent. Cependant, vous devez gérer la base de données et la manière dont les données lues dans la base de données sont codées. Si vous voyez des erreurs ou avez des commentaires, veuillez laisser un message.

Recommandations associées :

Exemple Python de la façon de calculer la valeur de pi à n'importe quel chiffre

Python implémente une simple vente flash Taobao fonction

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn