Python GTIN 8产品计算器

时间:2015-11-29 16:02:02

标签: python python-3.x

这是我的代码:

while True:
    try:
        number = int (str("Enter"))
        if len(str(number)) != 7:
            print('Incorrect')
        if len(str(number)) == 7:
            print('Okay')
            multiplier = [3,1]
            times = ""
            total = 0
            for index, digit in enumerate(list(str(number))):
                total = total + int(digit)*multiplier[index%2]
                times = times+str(int(digit)*multiplier[index%2])+", "
            mof10 = total + (10 - total%10)
            checkdigit = mof10 - total
            final = str(number) + str(checkdigit)
            print (times[:-1])
            print(total)
            print(mof10)
            print(checkdigit)
            print(final)
            break
    except ValueError:
        print("Not a number")
  1. 当我运行代码时,除了ValueError之外是唯一可以打印的内容,但它不会停止打印它。
  2. 我想知道如何让这段代码接受8位数字,然后验证它是否为10的倍数,如果它应该是有效的。

1 个答案:

答案 0 :(得分:0)

您的程序从一开始就遇到异常。

    number = int(str("Enter"))

程序正在创建一个名为' number'的整数。但是,您的代码正在保存文本"输入"作为字符串,然后将其转换为整数。

您需要做的是替换' str'输入'。这意味着程序将打印'输入',并将用户输入保存为整数。你以前做的是保存文字'输入'作为一个字符串,然后转换为一个int,这导致异常并使Python运行'除了'代码。