Pythonで、UPCコードのチェックデジットを計算する方法
別にPythonでなくても良いですが、UPCコード(12桁のUPC-A)の、チェックデジットを計算する処理を書いてみました。
ちなみに、UPCコード(正しくはUPC-A)は、全部で12桁から成り、以下の内容で構成されます。
1桁目 : ナンバーシステムキャラクタ(商品の種別)
2桁〜6桁目 : メーカーコード(5桁)
7桁〜11桁目 : 商品コード(5桁)
12桁目 : チェックデジット
最後の桁のチェックデジットは、偶数桁を全部足して3で掛けたものに、奇数桁を全部足して、なおかつそれを、10で割った余りから10を引いた自然数です(なんのこっちゃw)
まあ、コードにすると分かりやすいと思います。
def upc_check_digit(number):
return str(10 - ((
int(number[0]) +
int(number[2]) +
int(number[4]) +
int(number[6]) +
int(number[8]) +
int(number[10])
) * 3 + (
int(number[1]) +
int(number[3]) +
int(number[5]) +
int(number[7]) +
int(number[9]))) % 10)
print(upc_check_digit("12345678901"))
return str(10 - ((
int(number[0]) +
int(number[2]) +
int(number[4]) +
int(number[6]) +
int(number[8]) +
int(number[10])
) * 3 + (
int(number[1]) +
int(number[3]) +
int(number[5]) +
int(number[7]) +
int(number[9]))) % 10)
print(upc_check_digit("12345678901"))
実行結果: 2 (str型)
・・・そのまんまやん!!って感じのコードですなw
この記事の最終更新日:2017/11/15
最初に記事を書いた日:2017/11/09