首页 > 解决方案 > 遍历列表中的列表

问题描述

HS CSE 第一年。编写比萨订购程序。老师想要一个单独的函数来计算成本。我正在努力让程序增加配料的价格。每个比萨饼是 13 美元,浇头是额外的。目标是对普通披萨(空单)、有配料的披萨或根本不收费的披萨收费。

def pizza_cost(pizza):
  global total
  total += 13.00
  for y in pizza:
    if (y == "Pepperoni"):
      total += 1.00

order = input("Would you like to make an order? (y or n)")
while order != "n":
  pizza_order = input("Would you like a pizza? (y or n)")
  pizza = []
  while pizza_order.upper() != "N":
    if pizza_order.upper() == "Y":
      topping_option = input("Would you like to add a topping? (y or n)")
      while topping_option.upper() != "N":
        topping_list = []
        topping = input("What topping would you like? Pepperoni (p), Mushroom (m)")
        if topping.upper() == "P":
          topping_list.append("Pepperoni")
        elif topping.upper() == "M":
          topping_list.append("Mushroom")
        topping_option = input("Would you like to add another topping? (y or n)")
      pizza.append(topping_list)
    pizza_order = input("Would you like another pizza? (y or n)")
  for x in pizza:
    pizza_cost(pizza)
# Example order (Two plain pizzas and pizza with double-pepperoni)
([], [], ["Pepperoni", "Pepperoni"])

标签: pythonpython-3.x

解决方案


您的代码中唯一的问题是您在代码末尾将比萨列表的列表pizza而不是单个比萨x传递给函数:pizza_cost

  for x in pizza:
    pizza_cost(pizza)

如果你通过x了,你的整个代码会做你想做的;)!

  for x in pizza:
    pizza_cost(x)

推荐阅读