程序從8位GTIN8(條形碼)編號中獲取7位數的輸入,將它們交替乘以3和1,然後減去和從總和的最接近的倍數10.Python:計算GTIN-8數字,代碼有效,但有時會返回負號條形碼
該代碼工作,但有時從算法返回一個負數,但不應該。
這裏是代碼:
GTIN=(input("Enter a 7 digit GTIN number: "))
length=len(GTIN)
if(length==7):
P1=int(GTIN[0])
P2=int(GTIN[1])
P3=int(GTIN[2])
P4=int(GTIN[3])
P5=int(GTIN[4])
P6=int(GTIN[5])
P7=int(GTIN[6])
GTINT=int(P1*3+P2+P3*3+P4+P5*3+P6+P7*3)
roundup=round(GTINT, -1)
GTIN8=int(roundup-GTINT)
print("Your full GTIN-8 code is: "+str(GTIN)+str(GTIN8))
下面是它工作時會發生什麼:
輸入一個7位數的GTIN號碼:9638507 你的全GTIN-8編碼是:96385074
正如你所看到的,返回的數字不是負數。
下面是當它不工作會發生什麼:
輸入一個7位數的GTIN號碼:57你的全GTIN-8代碼:57-4
負數返回,其它不應該。任何想法爲什麼?
融洽,只是讓你知道,在你的第四至變量名稱輸入錯誤最後一行。您編寫了GTINT而不是GTIN。歡迎您:) – 2016-06-09 12:41:54