0

私のコードは、7 桁の数字 (GTIN 8) を要求して 8 桁目を伝えたり、8 桁 (GTIN 8) の数字を求めてそれが有効な GTIN 8 番号であるかどうかを伝えたりするはずでした。私はこれらの出力を得ていません。

7 桁以外の数字を入力するとエラー メッセージが表示される

c = int(GTIN[2])*3

IndexError: 文字列インデックスが範囲外です

8 桁の数字を入力するとエラー メッセージが表示される

len(str(GTIN))==8 かつ sum(total)%10==0 の場合:

TypeError: 'int' object is not iterable このエラーを修正するには、コードに何をする必要がありますか?

ありがとう。これは私のコードです(あなたが確信していないことは何でも明確にすることができます):

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

2 に答える 2