13位商品條形碼最后一位校驗碼計算


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM