2017-03-08 91 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

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