ホームページ >バックエンド開発 >Python チュートリアル >Python でスーパーマーケットのスキャナーの課金を実装

Python でスーパーマーケットのスキャナーの課金を実装

不言
不言オリジナル
2018-06-01 15:16:352265ブラウズ

この記事では、主にスーパーマーケットのスキャナー請求を実装するためのPythonを詳しく紹介します。これには特定の参考値があります。興味のある友人はそれを参照してください。

スーパーマーケットのスキャナー請求を実装するためのPythonのプログラムは、主にスーパーマーケットのスキャナーを使用して商品のバーコードをスキャンします。 、製品情報を読み取り、課金機能を実装します。使用される主なテクノロジーはシリアル通信とデータベース操作です。必要な環境には、Python 環境、mysql、Python ライブラリ (シリアル、MySQLdb) などが含まれます。

このプログラムの主なプロセスは、バーコードスキャナーを使用して製品バーコードをスキャンし、シリアル通信を通じて製品バーコードを取得し、バーコードを通じて製品情報を取得し、製品情報を表示し、合計コストを計算することです。製品情報はデータベースに保存されており、事前にインポートすることも、手動でインポートすることもできます (スキャン中に情報をインポートすることもできます)。

プログラムコードは次のとおりです:

#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 でスーパーマーケットのスキャナーの課金を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。