Python 我的程序中的整数到字符串错误

Python 我的程序中的整数到字符串错误,python,string,int,Python,String,Int,我有一个程序,我目前正在工作的问题。它是一个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(sevenN

我有一个程序,我目前正在工作的问题。它是一个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

非常感谢。

您不能将
string
int
连接在一起:

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))

a
b
g
定义为字符串:

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


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

函数中不使用这些变量。OP将它们重新定义为int,如
a=int(sevenNum[0])*3
@Selcuk,但是
total=(a+b+c+d+e+f+g)
语句本身甚至在调用函数之前就在函数外部执行,不是吗?所以OP重新定义了它们,但从未真正使用过它们;但是如果不是,你是对的…@AKS尽管改变了'a','b'的值。。。对于整数,它仍然不起作用。@djjordand6:这是您发布的实际代码吗?因为我看到缩进有一些问题。请用适当的缩进发布实际代码,然后我们将能够更好地帮助您。感谢您的澄清。@djjordand6上行将修复其中一个错误,但您的代码中还有其他问题。同样,对于其他用户,只需删除末尾的{8},因为它会带来范围问题。{0}-{7}可以容纳8个字符。@djjordand6谢谢,现在就修好了……是的,我刚刚找到了一些,谢谢。