2016-01-31 83 views
-1

我可以输入一个有效的gtin,例如(12345670,13245627)和2个数量,但不知道为什么当我使用追加函数时它们不会出现在列表中,它只是输出最后一个。如何在while循环中使用append?

products = {} 
fi = open("prod_file.txt","r") 
for line in fi: 
    l = line.rstrip().split(":") 
    products[l[0]] = {"desc" : l[1], "price" : l[2], "stock" : int(l[3]), "reorder" : int(l[4]), "target" : int(l[5])} 
fi.close 
gtin_valid() 

cont=False 
while not cont: 
    quantity=input("enter qty: ") 
    if quantity.isdigit(): 
     qty=[quantity] 
     gtin8=[gtin] 
     qty.append(quantity) 
     gtin8.append(gtin) 
     carryon=input("do you want to continue? ") 
     if carryon[0]=="n": 
      cont=True 
      print(qty,gtin8) 
     else: 
      gtin_valid() 
      quantity=input("enter qty: ") 

    else: 
     print("Please enter numbers only ") 
     gtin_valid() 
     quantity=input("enter qty: ") 

回答

0

删除线

qty=[quantity] 
    gtin8=[gtin] 

,因为它会覆盖以前的值列表。前

,创造空列表while not cont:

qty = [] 
gtin8 = [] 

while not cont:  
+0

上问的第二次,它要求数量的两倍,然后在列表打印第二GTIN和第二数量的两倍。你知道为什么吗? – Ben

+0

它要求两次,因为你在'if/else'(第一个问题)里面'输入()'和'if'(第二个问题)之前。您必须从'if/else'删除'input()' – furas

+0

'输入GTIN-8编号:13245627 GTIN有效 输入数量:7 是否要继续? y 输入GTIN-8号码:11111115 GTIN有效 输入数量:3 是否要继续? n ['7','7','3'] ['13245627','11111115','11111115']' – Ben