2017-03-18 36 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

在这段代码中,你只打印清单,而在这种情况下产生无限循环。 在您的示例中,产品是一个列表。那么为什么你不能通过它来查看功能,然后传递给循环打印产品的内容