#!/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")