>백엔드 개발 >파이썬 튜토리얼 >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 구현 예

간단한 Taobao 플래시 세일 기능의 Python 구현


위 내용은 Python은 슈퍼마켓 스캐너 청구를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.