私のコードは、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")