EAN13碼校驗碼的生成與驗證

EAN13碼是商品條碼中最常用的一種,由13位數字組成,其中最後一位為校驗碼。該校驗碼是由前12位數字計算得出的,並用於驗證EAN13碼是否有效。本文將從生成EAN13碼校驗碼以及驗證EAN13碼是否正確兩個方面進行詳細闡述。

一、生成EAN13碼校驗碼

在生成EAN13碼時,我們需要先輸入前12位數字,然後計算出校驗碼,將其加到這12位數字後面即可生成EAN13碼。

計算校驗碼的方法如下:

def calculate_ean13_checksum(digits: str) -> str:
    """
    Calculate EAN-13 check digit based on the first 12 digits.
    """
    assert len(digits) == 12, "EAN-13 must be 12 digits long"
    factors = [1, 3] * 6
    checksum = sum(int(digits[i]) * factors[i] for i in range(12))
    return str((10 - checksum % 10) % 10)

上面的代碼中,calculate_ean13_checksum函數接收一個12位數字的字符串作為參數,返回其計算出的校驗碼。

計算校驗碼的方法是將前12位數字中的奇數位和偶數位分別相加,得到兩個數,再將奇數位的和乘以3後加上偶數位的和,得到一個總和。最後,用10減去該總和對10取餘數,所得的結果即為校驗碼。

二、驗證EAN13碼是否正確

如果要驗證EAN13碼是否正確,我們需要先確認其校驗碼是否與前12位數字計算得出的校驗碼相等。如果相等,則可以認為該EAN13碼是有效的。

驗證EAN13碼的方法如下:

def validate_ean13(code: str) -> bool:
    """
    Validate EAN-13 code.
    """
    assert len(code) == 13, "EAN-13 must be 13 digits long"
    return code[-1] == calculate_ean13_checksum(code[:-1])

validate_ean13函數接收一個13位數字的字符串作為參數,返回一個布爾值,表示該EAN13碼是否有效。

該函數通過調用calculate_ean13_checksum函數計算出前12位數字的校驗碼,然後將該校驗碼與傳入的EAN13碼的最後一位進行比較,如果相等,則說明該EAN13碼是有效的。否則,可能是輸入的EAN13碼有誤,也可能是輸入的校驗碼有誤。

三、總結

本文從生成EAN13碼校驗碼以及驗證EAN13碼是否正確兩個方面進行了詳細闡述。在實際應用中,我們可以使用上面提到的兩個函數來方便地生成和驗證EAN13碼。通過本文的介紹,相信大家對EAN13碼的校驗碼計算和驗證有了更深入的理解。

原創文章,作者:NAGEG,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/374686.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
NAGEG的頭像NAGEG
上一篇 2025-04-28 13:17
下一篇 2025-04-28 13:17

相關推薦

  • 海明碼校驗碼的計算方法

    一、海明碼校驗碼的概念 海明碼(Hamming Code)是一種進行錯誤檢測和校正的編碼方法。它可以通過添加校驗位的方式,在傳輸過程中檢測出傳輸錯誤和修復某些錯誤。其中海明碼校驗碼…

    編程 2025-04-24
  • CRC循環冗餘校驗碼的計算方法

    一、CRC循環冗餘校驗碼的計算方法例題 CRC循環冗餘校驗碼是一種校驗方法,能夠檢測數據傳輸時出現的錯誤。下面以一個具體的例子演示CRC循環冗餘校驗碼的計算方法: 假設我們有一串二…

    編程 2025-02-24
  • python如何計算校驗碼(校驗碼計算題)

    本文目錄一覽: 1、身份證號碼尾號的校驗碼是由什麼公式計算出來的 2、什麼是「2121」校驗方法? 3、用Python校驗身份證號碼真偽 4、GPRMC校驗位如何計算 python…

    編程 2024-12-12
  • 校驗碼計算

    一、校驗碼的概念 校驗碼是一種用於校驗數據是否有效的方法,是計算機中常用的一種算法。校驗碼的計算過程通常可以通過運算得到,而且校驗碼很小,在處理數據時對系統資源的消耗非常少。在數據…

    編程 2024-12-10
  • javacrc校驗碼實現,crc校驗碼c語言

    本文目錄一覽: 1、用java編寫一個獲得CRC校驗碼的javabean 2、JAVA怎麼做CRC校驗的程序 3、java中CRC算法是個什麼東東 用java編寫一個獲得CRC校驗…

    編程 2024-10-26

發表回復

登錄後才能評論