#!/usr/bin/python
# -*- coding: UTF-8 -*-
def CheckCode(barcode):
"""
:param barcode: 商品條碼的前十二位
:return: 商品條碼的最后一位校驗碼
step1:位置序號不包括校驗碼在內,由右至左順序排號
step2:從位置序號1開始,所有奇數位的數字求和
step3:將step2的和乘以3
step4:從位置序號2開始,所有偶數位的數字求和
step5:將step3和step4的結果相加
step6:用大於或等於step5所得結果且為10最小整數倍的數減去step5所得結果,其差即為最后一位校驗碼的值
"""
if len(barcode) != 12:
print("Error,請輸入商品條碼的前12位")
s1 = 3 * (int(barcode[11])+int(barcode[9])+int(barcode[7])+int(barcode[5])+int(barcode[3])+int(barcode[1]))
print(s1)
s2 = int(barcode[10])+int(barcode[8])+int(barcode[6])+int(barcode[4])+int(barcode[2])+int(barcode[0])
print(s2)
sum = s1+s2
if (sum % 10) == 0:
result = sum
print(result)
else:
result = ((int(sum/10))+1)*10
print(result)
print(result-sum)
return result-sum
if __name__ == '__main__':
"""
商品條形碼由13位數字組成,697352417001X,最后一位校驗碼X的計算算法
"""
CheckCode("697352417001")