Maison >développement back-end >Tutoriel Python >Python implémente la facturation par scanner de supermarché
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!