2017-03-08 90 views
-1

所以我需要編寫一個程序給用戶兩個選項:A)驗證GTIN代碼或B)從7個GTIN代碼中查找8位GTIN代碼。我已經得到了代碼,但唯一的問題是,它不會要求用戶的選項,如A)你想找出第8位或B)你想驗證代碼 每當用戶選擇他或她的選擇它應該爲該選項執行for循環而不是整個代碼。如果有人知道如何將其放入菜單中,請告訴我,謝謝。把代碼放在菜單

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

number = (sum + 9) // 10 * 10 
lastdigit = number - sum 
print("8th digit ", lastdigit) 

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


barcode = input("Please enter 8 digit barcode to validate") 
for i in gtin: 
    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") 
+0

把每個動作到功能,並使用'input'和'if'語句來運行一個粘貼整個代碼? – glibdud

回答

0

代碼爲你打算做可以去像這樣的內容:

print ("Choose:") 
print ("1. Validate GTIN Code") 
print ("2. Find 8 digit of GTIN code") 

user_input = input("Select 1 or 2") 

if user_input == 1: 
    # execute validate GTIN code 
elif user_input == 2: 
    # execute find 8 digit gtin code 
else: 
    print ("please enter a valid option") 

希望它能幫助。

編輯: 這裏

print("Choose:") 
print("1. Validate GTIN Code") 
print("2. Find 8 digit of GTIN code") 
sum = 0 
counter = 0 
user_input = input("Select 1 or 2") 

if user_input == 1: 
    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 

    number = (sum + 9) // 10 * 10 
    lastdigit = number - sum 
    print("8th digit ", lastdigit) 

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



elif user_input == 2: 
    barcode = input("Please enter 8 digit barcode to validate") 
    for i in gtin: 
     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")  
else: 
    print "please enter a valid option" 
+0

不起作用我粘貼了這樣的代碼,請參閱下面的粘貼方法。它說無效的語法 –

+0

你使用python 3嗎? – Shubham

+0

Python 3.6 32位 –

0

enter image description here

print("Choose:") 
    print("1. Validate GTIN Code") 
    print("2. Find 8 digit of GTIN code") 
    sum = 0 
    counter = 0 
    user_input = input("Select 1 or 2") 

    if user_input == 1: 
     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 

    number = (sum + 9) // 10 * 10 
    lastdigit = number - sum 
    print("8th digit ", lastdigit) 

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

    elif user_input == 2: 
     barcode = input("Please enter 8 digit barcode to validate") 
    for i in gtin: 
     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")  
    else: 
     print "please enter a valid option" 
+0

恐怕它仍然不起作用,它說出乎意料的指數 –