【问题标题】:Integer to String error in my program [duplicate]我的程序中的整数到字符串错误[重复]
【发布时间】:2016-05-21 08:30:55
【问题描述】:

我目前正在处理的程序有问题。它是一个 GTIN-8 代码生成器。当我尝试启动程序时,出现错误:

Type Error: Can't convert 'int' to str implicitly.

我的代码如下:

sevenNum = ""
gtinNum = ""
checkDigit = ""
total = ""

a = ""
b = ""
c = ""
d = ""
e = ""
f = ""
g = ""

def GTINCalc():
    a = int(sevenNum[0])*3
    b = int(sevenNum[1])*1
    c = int(sevenNum[0])*3
    d = int(sevenNum[1])*1
    e = int(sevenNum[0])*3
    f = int(sevenNum[1])*1
    g = int(sevenNum[0])*3

    total = (a+b+c+d+e+f+g)

    checkDigit = (total + 9) // 10 * 10 - total

    print("GTIN-8 Code:" + a+b+c+d+e+f+g+checkDigit)


def sevenNumAsk():
    sevenNum = input("Enter a 7 digit number to be converted into a GTIN-8 Number")
if sevenNum.isdigit() == True and len(sevenNum) == 7:
    print("Valid Number - Calculating GTIN-8...")
    GTINCalc()
else:
    print("The number is not valid - please re-enter ")
    sevenNumAsk()

sevenNumAsk()

这部分有问题:

total = (a+b+c+d+e+f+g)

checkDigit = (total + 9) // 10 * 10 - total

非常感谢。

【问题讨论】:

    标签: python string int


    【解决方案1】:

    您不能将stringints 连接在一起:

    print("GTIN-8 Code:" + a+b+c+d+e+f+g+checkDigit)
    

    无论如何使用字符串格式更正确,例如:

    print("GTIN-8 Code: {0}{1}{2}{3}{4}{5}{6}{7}".format(a, b, c, d, e, f, g, checkDigit))
    

    【讨论】:

    • 感谢您的澄清。
    • @djjordand6 上面的行将修复其中一个错误,但您的代码中还有其他问题。另请参阅 AKS 的答案。
    • 另外,对于其他用户,只需删除末尾的 {8},因为它会给 Range 带来问题。 {0} - {7} 应该适合 8 个字符。
    • @djjordand6 谢谢,现在修好了...
    • 是的,刚刚找到更多,谢谢。
    【解决方案2】:

    ab....g 被定义为字符串:

    a = ""
    b = ""
    c = ""
    d = ""
    e = ""
    f = ""
    g = ""
    

    而且,当你把它们加起来 total = (a+b+c+d+e+f+g) 时,total 也是一个字符串。

    我认为您的缩进在代码中已关闭。如果仅在发布问题时只是复制/粘贴错误,那么您可以参考@Selcuk 的答案。

    【讨论】:

    • 函数中不使用这些变量。 OP 将它们重新定义为整数,如a = int(sevenNum[0])*3
    • @Selcuk 但是语句total = (a+b+c+d+e+f+g) 本身甚至在函数被调用之前就在函数外部执行,不是吗?所以 OP 正在重新定义它们,但从未真正使用它们。
    • 好吧,我认为这是复制/粘贴错误;但如果不是,你是对的......
    • @AKS 尽管将 'a', 'b'... 的值更改为整数,但它仍然不起作用。
    • @djjordand6:这是您发布的实际代码吗?因为我看到缩进有一些问题。请以适当的缩进发布实际代码,然后我们将更好地为您提供帮助。
    猜你喜欢
    • 2015-12-30
    • 2018-12-30
    • 2018-11-09
    • 2013-12-14
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 2021-12-11
    • 2015-06-06
    相关资源
    最近更新 更多