首页 > 解决方案 > 如何打印由函数输出组成的列表

问题描述

以下代码是一个快餐菜单,在用户完全选择一个选项后,它会存储在 Order 列表中。订单完成后,我想打印订单列表以显示用户订购的内容,即:奶酪汉堡。

但相反,它正在输出:< main .Burger object at 0x0000027BB1221490>

     def user_input_burger():
        bur = input("What burger would you like?: 1. Beef 2. Chicken")
        while True:
            if bur.lower() == "1" or bur.lower() == "beef":
               toppings = input("What toppings would you like?: 1. Cheese 2. No Cheese")
               while toppings.lower() not in ["cheese", "no cheese", "1", "2"]:
                   print("Invalid selection")
                   toppings = input("What toppings would you like?: 1. Cheese 2. No Cheese")
               b = Burger(bur.lower(), toppings.lower())
               if toppings.lower() == "c":
                   print("Order Cancelled")
                   b = 1
          elif bur.lower() == "c":
              print("Order Cancelled")
              b = 1
      return b

   def take_order():
         Order = []
         print("Welcome to Burger Shop!")
         user = input("Enter your name: ")
         print("Hello" + " " + user + ". " + "Enter c to cancel order at any time.")
         go = 0

   burgers = input("Would you like a burger? (Y/N): ")
   while burgers.lower() != "n" and go == 0:
       if burgers.lower() not in ["y", "n", "c"]:
          print("Invalid selection")
          burgers = input("Would you like a burger? (Y/N): ")
       elif burgers.lower() == "y":
          t = user_input_burger()
          Order.append(t)
          if t==1:
              go = 1
          else:
              burgers=input("Would you like another burger? (Y/N): ")
       elif burgers.lower() == "n":
           break
       else:
           print("Order Cancelled")
           break
  for i in Order:
      print(i)

    take_order()

标签: pythonpython-3.x

解决方案


首先你设置

b = Burger(bur.lower(), toppings.lower())

如果浇头是“c”,则将其设置为 1。

让你开始吧。那里还有其他错误,但这是主要错误。


推荐阅读