python 슈퍼마켓 스 캔 기 요금 계산 실현
이 프로그램의 주요 과정 은 스 캔 기 를 이용 하여 상품 바 코드 를 스 캔 하고 직렬 통신 을 통 해 상품 바 코드 를 얻 으 며 이 바 코드 를 통 해 상품 정 보 를 얻 고 이 상품 정 보 를 표시 하 며 총 비용 을 통계 하 는 것 이다.그 중에서 상품 정 보 는 데이터베이스 에 저장 되 어 있 습 니 다.상품 정 보 를 미리 가 져 오 거나 수 동 으로 가 져 올 수 있 습 니 다.제 가 여기 서 미리 가 져 온 것 입 니 다.(빗질 하면 서 정 보 를 부 을 수도 있 습 니 다)데이터베이스 에 가 져 온 정 보 는 다음 과 같 습 니 다.
프로그램 코드 는 다음 과 같 습 니 다:
#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 을 배우 기 시 작 했 기 때문에 코드 규범 상 잘 하지 못 했 습 니 다.마지막 프로그램의 운행 은 다음 과 같 습 니 다.그 중에서 제 프로그램 에서 중국 어 를 사용 할 수 있 습 니 다.바로 어 지 러 운 코드 를 표시 하 는 것 입 니 다)이 문 제 는 제 가 앞의 블 로그 에서 이야기 한 적 이 있 습 니 다.데이터 베 이 스 를 처리 하고 데이터 베 이 스 를 통 해 읽 은 데 이 터 를 인 코딩 하 는 방식 이 필요 합 니 다.만약 여러분 이 무슨 잘못 을 알 아 차 렸 거나 의견 이 있 으 면 여러분 의 메 시 지 를 즐겁게 드 세 요.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.