Мой код должен запросить 7-значное число (GTIN 8) и указать вам восьмую цифру и/или попросить ввести 8-значный номер (GTIN 8) и укажите, является ли это допустимым номером GTIN 8. Однако я не получаю эти результаты.Моя контрольная цифра GTIN 8 и проверка действительности не работают
Сообщение об ошибке при вводе в не 7 цифр
c = int(GTIN[2])*3
IndexError: string index out of range
сообщение об ошибке, когда я набираю в 8 цифр
if len(str(GTIN))==8 and sum(total)%10==0:
TypeError: 'int' object is not iterable What do I need to do to my code to fix this error?
Спасибо. Это мой код (я могу уточнить, что вы не уверены):
while 2>1:
GTIN = input("Enter 7 digit number for check-digit. Enter 8 digit number for validity.")
if GTIN.isdigit()==False:
continue
a = int(GTIN[0])*3
b = int(GTIN[1])*1
c = int(GTIN[2])*3
d = int(GTIN[3])*1
e = int(GTIN[4])*3
f = int(GTIN[5])*1
g = int(GTIN[6])*3
total = (a+b+c+d+e+f+g)
checkdigit = (total + 9) // 10 * 10 - total
if len(GTIN) == 7:
print("Your check digit is",checkdigit)
if len(str(GTIN))==8 and sum(total)%10==0:
print("Valid GTIN-8 number")
else: print("Invalid GTIN number")
Если вы не проверяете длину 'GTIN' * перед *, вы начинаете пытаться получить доступ к отдельным символам в нем? –
Я не уверен, что это необходимо для того, как вы делаете свой код. Возможно, спасибо, спасибо – Clink