我需要在Python2中制作一个EAN-13数字有效性检查器。我不知道';我不明白这为什么不';行不通

我需要在Python2中制作一个EAN-13数字有效性检查器。我不知道';我不明白这为什么不';行不通,python,Python,我真的不明白为什么老师也帮不上忙 我需要在Python2中制作一个EAN-13数字有效性检查器。我不明白这为什么不起作用。有人能帮忙吗?我用Python2做了一个EAN 13数字有效性检查。 希望它能帮助你 inp = raw_input("Input a EAN-13 number.") aaa = False bbb = False if len(inp) == 13: bbb = True else: print "Error input" exit ean_number =

我真的不明白为什么老师也帮不上忙


我需要在Python2中制作一个EAN-13数字有效性检查器。我不明白这为什么不起作用。有人能帮忙吗?

我用Python2做了一个EAN 13数字有效性检查。 希望它能帮助你

inp = raw_input("Input a EAN-13 number.")
aaa = False
bbb = False

if len(inp) == 13:
    bbb = True
else:
print "Error input"
exit

ean_number = int(inp)
def ean13(value_1):
mult_of_ten = 0
sum_of_digits = 0
done = False
for z in len(value_1):
    if not z == 0:
        if z % 2 == 0:
            value_1[z] *= 3
        elif not z % 2 == 0:
            value_1[z] *= 1
for a in len(value_1):
    sum_of_digits += value_1[a]
if sum_of_digits % 10 == 0:
    result = 0
elif not sum_of_digits % 10 == 0:
    while done == False:
        mult_of_ten = sum_of_digits
        for d in True:
            mult_of_ten += d
            if sum_of_digits % 10 == 0:
                done == True
    result = mult_of_ten - sum_of_digits
    if result == value_1[12]:
        print "True"

if bbb == True:
    ean13(ean_number)

你说的“不起作用”到底是什么意思?请澄清。你能先告诉我们什么东西不起作用吗?是否存在运行时错误?它不提供所需的输出吗?看这里:据我所见,凹痕很不清楚。
# ean = '9780201379624'
ean = raw_input("Input a EAN-13 number:\n")
err = 0
even = 0
odd = 0
check_bit = ean[len(ean)-1]#get check bit(last bit)
check_val = ean[:-1]#Get all vals except check bit

if len(ean) != 13:#Check the input length
    print "Invalid EAN 13"
else:
    for index,num  in enumerate(check_val):#Gather Odd and Even Bits
        if index%2 == 0:
            even += int(num)
        else:
            odd += int(num)
    if ((3*odd)+even+int(check_bit)) % 10 == 0:# Check if the algorithm 3 * odd parity + even parity + check bit matches
        print "Valid EAN 13"
    else:
        print "Invalid EAN 13"