2017-03-07 12 views
0

したがって、ユーザーに2つのオプションを与えるプログラムを作成する必要があります。A)GTINコードの検証またはB)7 GTINコードからのGTINコードの8桁の検索。 7桁のGTINコードのGTINコードの8桁目を調べるには、7 GTINコードの各桁を次のように掛ける必要があります。 enter image description here 次に、合計を50から減算して8桁目を減算します。私が代わりに私はそれが表示したい結果表示のBまたはbを押すたびしかし私は、コードを作るのに苦労しています 「GTINに私のために: NameError:名 『GTINは』が定義されていない」ここ コード8桁のGTINバーコードを確認する

です
question = input("Would you like to A)Validate your code or B) Find the 8th digit?") 
if question in "Aa": 
    barcode = input("Please enter your 8 digit number") 
counter = 0 
sum = 0 
for i in barcode: 
    counter = counter + 1 
    if counter % 2 != 0: 
     sum = sum + int(i) * 3 
    else: 
     sum = sum + int(i) * 1 
if sum % 10 == 0: 
    print("Valid GTIN") 
else: 
    print("Invalid GTIN") 

if question in "Bb": 
    gtin = input("Enter your 7 digit number") 
for i in gtin: 
    counter = counter + 1 
    if counter % 2 != 0: 
     sum = sum + int(i) * 3 
    else: 
     sum = sum + int(i) * 1 

print(sum) 
lastdigit = 50 - sum 
print("8th digit ", lastdigit) 

print("Full 7 digit number ", gtin) 
print("Full 8 digit number ", str(gtin+str(lastdigit))) 

私はAまたは押したときにも、それは私が望む結果を与えるだけでなく、メッセージが表示され、「GTINで私のために: NameError:名前 『GTIN』が定義されていません」 enter image description here 私はこのメッセージをしたくありません表示される

+2

"は動作しませんが、" 少し一般的です。正確にはどうなりますか? – stybl

+2

何が起きているのかを判断するのに役立つ結果を共有する必要があります。また、あなたの質問の書式に基づいて、あなたはPythonの字下げ規則を読む必要があるかもしれません。 – cdkMoose

+0

あなたのコードは有効ではありません。入力 '1111111'は '8番目の数字47' ... 47は数字ではありません。 '111111147'もあなたのコードに従って「有効」です。バリデーターにGTIN検証のステップがありません。スペックをもう一度見直す必要があります。また、あなたの 'a/b'オプションは、プロンプト状態とは正反対です。 – TemporalWolf

答えて

0

バーコードがbでないためにどのバーコードが認識されないので壊れます選択しなかったオプションのユーザー入力を待ってブロックされるため、何にも設定されません。

これを試してみてください。

question = input("Hellp, would you like to A) Validate you barcode or B)Find out the 8th digit number?") 
if question in "Bb": 
    # do B stuff 
elif question in "Aa": 
    # do A stuff 
関連する問題