Python列表append后为空求助:披萨配料添加代码问题排查
问题排查:披萨配料列表为空的原因
你的代码里每次添加完配料后都执行了toppinglist = [],这直接清空了刚添加的内容,才是导致最后打印列表为空的根本原因,和append()方法的使用无关。
看这段逻辑:当你用toppinglist.append(requestedtopping)把用户选的配料加入列表后,立刻执行toppinglist = []重置列表为空。哪怕用户多次选择配料,每次循环都会清空之前的内容,最后跳出循环时列表自然是空的。
修正后的代码
移除那句清空列表的语句即可:
toppinglist = [] instock = ['Cheese', 'Tomato', 'Chicken', 'Mushroom'] Outofstock = ['Beef', 'Pork', 'Onions'] wanttoppings_q = input('Do you want toppings on your pizza? Yes/No') wanttoppings_q = wanttoppings_q.title() while wanttoppings_q == 'Yes': requestedtopping = input('Enter One Topping:') toppinglist.append(requestedtopping) anythingelse = input('Anything Else? Yes/No' ) anythingelse = anythingelse.title() # 删掉清空列表的语句 if anythingelse == 'No': break print(toppinglist)
额外优化建议(可选)
你还可以加入配料库存判断,避免用户选择缺货的配料,比如:
requestedtopping = input('Enter One Topping:').title() if requestedtopping in instock: toppinglist.append(requestedtopping) elif requestedtopping in Outofstock: print(f"Sorry, {requestedtopping} is out of stock.") else: print(f"Sorry, we don't have {requestedtopping}.")
内容的提问来源于stack exchange,提问作者Hez
相关产品推荐
相关产品推荐

