【发布时间】:2016-06-10 18:13:58
【问题描述】:
程序是从一个 8 位 GTIN8(条形码)号码中获取 7 位输入,将它们交替乘以 3 和 1,然后从和的最接近的 10 倍数中减去其和。
代码有效,但有时会从算法中返回负数,但不应该。
代码如下:
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 号码:5701234 您的完整 GTIN-8 代码为:5701234-4
返回一个负数,它不应该这样做。任何想法为什么?
【问题讨论】:
-
Matey,您知道,在倒数第四行中,变量名称输入错误。你写的是 GTIN 而不是 GTIN。欢迎您:)