Python 如何将列表转换为字符串,但显示CSV文件的元素?
我需要展示这一点:迄今为止做出的4个选择=['1'、'2'、'8'、'6']和成本=$20.8 以这种格式: 菜品无菜菜品价格适合素食者 0个烤虎虾4.5个是的 我还需要尝试,并在最后包括有多少菜不适合素食者Python 如何将列表转换为字符串,但显示CSV文件的元素?,python,string,list,csv,Python,String,List,Csv,我需要展示这一点:迄今为止做出的4个选择=['1'、'2'、'8'、'6']和成本=$20.8 以这种格式: 菜品无菜菜品价格适合素食者 0个烤虎虾4.5个是的 我还需要尝试,并在最后包括有多少菜不适合素食者 以下是我的尝试: spent = 0 order = [] menu = [ ['course', 'dish', 'price', 'suitable for vegetarians'], ['starter', 'Liver Pate and Toast', '3.5
以下是我的尝试:
spent = 0
order = []
menu = [
['course', 'dish', 'price', 'suitable for vegetarians'],
['starter', 'Liver Pate and Toast', '3.5', 'no'],
['main course', 'Beef Wellington', '10.95', 'no'],
['main course', 'Honey Glazed Duck Breast', '9.5', 'no'],
['dessert', 'Tiramisu', '3.5', 'yes'],
['dessert', 'Rhubarb Crumble', '3.9', 'yes']
]
#Menu imported into python, no need to leave file open
while True:
dishes = -1
for dish in menu:
if dishes == -1:
print ("Dish No".ljust(10), end="")
else:
print(str(dishes).ljust(10), end="")
print(dish[0].ljust(15), end="")
print(dish[1].ljust(30), end="")
print(dish[2].ljust(15), end="")
print(dish[3], end="\n\n")
dishes += 1
reply = input("Please choose your first item: ")
if reply.upper () == "Q":
break
print()
spent = spent + float(menu[int(reply)+1][2])
order = order + [reply]
print(len(order), "choices made so far =", order, "and cost = £ ", spent)
print()
print ("Please choose an item from the menu (0-9 or press Q to end): ")
print()
print ((order)dish[0,1,2,3]) #Displays order as text and not list
CSV文件中包含以下内容:
适合素食者的菜价
开胃煎虎虾4.5是的
布鲁谢塔山羊起司3.9是的
发酵剂肝酱和烤面包3.5个
主菜牛肉惠灵顿10.95号
主菜素食菲罗·鲁拉德7.5是的
主菜水煮鲑鱼配莳萝11.5号
主菜蜜汁鸭胸脯9.5号
甜点提拉米苏3.5是的
甜点深碟苹果派3.9是的
甜点大黄面包屑3.9是的考虑一下
reply = input("Please choose your first item: ")
if reply.upper () == "Q":
break
如果希望它是一个整数,请首先执行以下操作:
reply = int(reply)
添加到花费的和订单中:
print()
spent += float(menu[reply+1][2])
order.append(reply)
像以前一样打印一些菜单内容:
print(len(order), "choices made so far =", order, "and cost = £ ", spent)
print()
print ("Please choose an item from the menu (0-9 or press Q to end): ")
print()
您可以使用菜单[回复+1][1]
打印所选项目:
print("You ordered", menu[reply+1][1], "bringing your total to", spent)
print()
有人在一篇单独的帖子中提到了str.join,但我不知道如何使用它!现在,最后一行出现另一个错误(SyntaxError:invalid syntax
)。看看你能不能把它改成你想做的。然后我可能可以运行它:)。最后一行可以删除,这就是我一直坚持的地方。我正在尝试获取已选择作为文本列表而不是整数打印的顺序。最后一句话是我的经验,我几乎做到了。得到了一个完全独立的错误,由于尝试和除了,但它现在工作的大部分。谢谢你的帮助和耐心