Heim  >  Artikel  >  Backend-Entwicklung  >  Python implementiert die Abrechnung von Supermarktscannern

Python implementiert die Abrechnung von Supermarktscannern

不言
不言Original
2018-06-01 15:16:352232Durchsuche

In diesem Artikel wird hauptsächlich die Python-Implementierung der Supermarkt-Scanner-Abrechnung vorgestellt, die einen gewissen Referenzwert hat. Interessierte Freunde können sich hauptsächlich auf die

Python-Implementierung des Supermarkt-Codescanner-Abrechnungsprogramms beziehen Verwendet den Supermarkt-Codescanner, um den Barcode des Produkts zu scannen, die Produktinformationen zu lesen und die Abrechnungsfunktion zu implementieren. Die wichtigsten verwendeten Technologien sind serielle Kommunikation und Datenbankoperationen. Zu den erforderlichen Umgebungen gehören: Python-Umgebung, MySQL, Python-Bibliothek (seriell, MySQLdb) usw.

Der Hauptprozess dieses Programms ist: Verwenden Sie einen Barcode-Scanner, um den Produkt-Barcode zu scannen, erhalten Sie den Produkt-Barcode über serielle Kommunikation, erhalten Sie Produktinformationen über den Barcode, zeigen Sie die Produktinformationen an und berechnen Sie die Gesamtkosten. Die Produktinformationen werden in der Datenbank gespeichert, die vorab oder manuell importiert werden kann (Sie können die Informationen auch beim Scannen importieren:

).

Der Programmcode lautet wie folgt:

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

Da ich gerade erst angefangen habe, Python zu lernen, ist die Codespezifikation noch nicht sehr gut. Ich hoffe, jeder kann darauf hinweisen es aus. Schließlich läuft das Programm wie folgt:

Unter anderem kann Chinesisch in meinem Programm verwendet werden (es wurde am Anfang nicht angezeigt? Es wurden nur verstümmelte Zeichen angezeigt ). Ich habe in meinem vorherigen Blog über dieses Problem gesprochen: „Muss mit der Datenbank umgehen und wie die aus der Datenbank gelesenen Daten codiert werden“. Wenn Sie Fehler sehen oder Kommentare haben, hinterlassen Sie bitte eine Nachricht.

Verwandte Empfehlungen:

Python-Beispiel für die Berechnung des Werts von Pi in eine beliebige Ziffer

Python implementiert einen einfachen Taobao-Flash-Sale Funktion

Das obige ist der detaillierte Inhalt vonPython implementiert die Abrechnung von Supermarktscannern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn