验证8位GTIN条形码

时间:2017-03-07 18:07:00

标签: python

所以我需要编写一个程序,为用户提供两个选项:A)验证GTIN代码或B)从7个GTIN代码中查找GTIN代码的8位数。要从7位GTIN代码中找出GTIN代码的第8位,7 GTIN代码中的每个数字必须按照这样的顺序相乘

enter image description here

然后从50减去总和得到第8位数。 然而,我努力制作代码,每当我按B或b而不是显示结果时,我希望它显示“for i in gtin: NameError:名称'gtin'未定义“ 这是代码

question = input("Would you like to A)Validate your code or B) Find the 8th digit?")
if question in "Aa":
    barcode = input("Please enter your 8 digit number")
counter = 0
sum = 0
for i in barcode:
    counter = counter + 1
    if counter % 2 != 0:
        sum = sum + int(i) * 3
    else:
        sum = sum + int(i) * 1  
if sum % 10 == 0:
    print("Valid GTIN")
else:
    print("Invalid GTIN")

if question in "Bb":
    gtin = input("Enter your 7 digit number")
for i in gtin:
    counter = counter + 1
    if counter % 2 != 0:
        sum = sum + int(i) * 3
    else:
        sum = sum + int(i) * 1

print(sum)
lastdigit = 50 - sum
print("8th digit ", lastdigit)

print("Full 7 digit number ", gtin)
print("Full 8 digit number ", str(gtin+str(lastdigit)) )

此外,当我按A或a时,它会给我我想要的结果,但也会显示消息“for i in gtin: NameError:名称'gtin'未定义“

enter image description here

我不希望显示此消息

1 个答案:

答案 0 :(得分:0)

它打破了,因为它不知道条形码是什么,因为它没有被设置为任何东西,因为它被阻止等待用户输入他们没有选择的选项。

试试这个:

question = input("Hellp, would you like to A) Validate you barcode or B)Find out the 8th digit number?")
if question in "Bb":
    # do B stuff
elif question in "Aa":
    # do A stuff
相关问题