2016-01-31 120 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