2017-03-18 79 views
0

我是Python的初學者,我製作了一個打印用戶輸入的產品列表的代碼,但每當我打印它時,它都不會當它到達最後一個元素時不會中斷...
編輯:該字符串應該是沒有空格。例如:山寨,奶酪,培根
這裏是我的代碼:如何僅打印列表中的項目(Python 2.7)

def menu(): 
    print "1. View products" 
def view(products): 
    print products 
def main(): 
    str1 = raw_input("") 
    products =str1.split(',') 
    menu() 
    choice = input("") 
    while (choice != 0): 
     if(choice == 1): 
      view(products) 
main() 
+0

你永遠不會改變while循環內的選擇,所以循環繼續運行 – ArchiFloyd

+1

你不更新選擇在while循環中,它總是以第一選擇運行。把'choice = input(「」)'放在循環結尾 –

回答

1

你有一個無限循環,這也就是爲什麼列表狀態越來越打印。你要問的輸入不止一次否則循環將永遠不會結束

choice = None 
while (choice != 0) and (choice != 1): 
    if(choice == 1): 
     view(products) 
    choice = input("Type 1 to view products, 0 to quit: ") 
+0

恐怕這段代碼不起作用。在while循環之前將選項設置爲1,導致您永遠不會進入while循環。 – darvark

+0

你是對的,謝謝你指出 –

1

在這段代碼中,你只打印清單,而在這種情況下產生無限循環。 在您的示例中,產品是一個列表。那麼爲什麼你不能通過它來查看功能,然後傳遞給循環打印產品的內容