如何使此代码循环到字典中,而不继续在python中循环? 写一个程序来计算晚餐的费用 如果此人未满5岁,晚餐是免费的 如果这个人不满10岁,晚餐是5美元 如果此人未满18岁,晚餐费用为10美元 如果此人超过65岁,晚餐费用为12美元 所有其他的晚餐付15美元 计算8%的税 显示每个用餐者的总数、用餐者人数、每个用餐者的平均成本以及所有用餐者的累计总数 程序应该循环直到进入退出,每次循环都会添加一个新的就餐者,并更新总数

如何使此代码循环到字典中,而不继续在python中循环? 写一个程序来计算晚餐的费用 如果此人未满5岁,晚餐是免费的 如果这个人不满10岁,晚餐是5美元 如果此人未满18岁,晚餐费用为10美元 如果此人超过65岁,晚餐费用为12美元 所有其他的晚餐付15美元 计算8%的税 显示每个用餐者的总数、用餐者人数、每个用餐者的平均成本以及所有用餐者的累计总数 程序应该循环直到进入退出,每次循环都会添加一个新的就餐者,并更新总数,python,python-3.x,loops,dictionary,input,Python,Python 3.x,Loops,Dictionary,Input,这就是我需要做的。我不知道该怎么做,这样总数就会进入字典而不是循环 我做了一个类似的问题,但现在这个问题需要把所有的数量加在一起,我不知道怎么做。这是我为前一个类似问题编写的代码。我现在遇到的问题是,它不会进入字典,也不会在最后打印出来。我还需要它保持循环,直到我键入退出 dinner = {} total ={} name = input("What's your name? ") age = input("What age is the person eating? ") age = i

这就是我需要做的。我不知道该怎么做,这样总数就会进入字典而不是循环

我做了一个类似的问题,但现在这个问题需要把所有的数量加在一起,我不知道怎么做。这是我为前一个类似问题编写的代码。我现在遇到的问题是,它不会进入字典,也不会在最后打印出来。我还需要它保持循环,直到我键入退出

dinner = {}
total ={}


name = input("What's your name? ")
age = input("What age is the person eating? ")
age = int(age)
amount = input("How many people that age? ")
amount = int(amount)

while True:
    if name == 'quit':
        print('Done')
        break
    elif age < 5:
        price = 0 * amount
        tax = price * 0.08
        dinner[name] = name
        dinner[age] = age
        total[amount] = price + tax
        break
    elif age < 10:
        price = 5 * amount
        tax = price * 0.08
        dinner[name] = name
        dinner[age] = age
        total[amount] = price + tax
        break
    elif age < 18:
        price = 10 * amount
        tax = price * 0.08
        dinner[name] = name
        dinner[age] = age
        total[amount] = price + tax
        break
    elif age > 65:
        price = 12 * amount
        tax = price * 0.08
        dinner[name] = name
        dinner[age] = age
        total[amount] = price + tax
        break
    else:
        price = 15 * amount
        tax = price * 0.08
        dinner[name] = name
        dinner[age] = age
        total[amount] = price + tax
        break
print("Thank you for having dinner with us! \nYour total is {total}, for {dinner}.")
晚餐={}
总计={}
name=输入(“你叫什么名字?”)
年龄=输入(“该人的饮食年龄是多少?”)
年龄=int(年龄)
金额=输入(“该年龄段有多少人?”)
金额=整数(金额)
尽管如此:
如果name=='quit':
打印(‘完成’)
打破
elif年龄<5岁:
价格=0*金额
税=价格*0.08
晚餐[姓名]=姓名
晚餐[年龄]
总额[金额]=价格+税金
打破
elif年龄<10岁:
价格=5*金额
税=价格*0.08
晚餐[姓名]=姓名
晚餐[年龄]
总额[金额]=价格+税金
打破
elif年龄<18岁:
价格=10*金额
税=价格*0.08
晚餐[姓名]=姓名
晚餐[年龄]
总额[金额]=价格+税金
打破
elif年龄>65岁:
价格=12*金额
税=价格*0.08
晚餐[姓名]=姓名
晚餐[年龄]
总额[金额]=价格+税金
打破
其他:
价格=15*金额
税=价格*0.08
晚餐[姓名]=姓名
晚餐[年龄]
总额[金额]=价格+税金
打破
打印(“感谢您与我们共进晚餐!\n您的总数为{total},用于{晚餐}。”)

实现这一点最简洁的方法是对年龄进行分类,确定给定年龄属于哪个分类,然后使用指数返回价格

  • 完成这项任务
    • 参数
      bins
      ,包含年龄,并确定给定值适合列表中的哪个索引<代码>存储箱是独占的,因此范围为0-4、5-9、10-17、18-65和66+
    • 这些范围对应于索引0、1、2、3和4
  • idx
    用于返回每个年龄段的相应价格
  • 使用函数返回成本,而不是一堆
    if elif
    语句
  • 黄色的说明不要求返回人员的姓名或年龄
  • 最后需要打印的所有内容都可以通过维护成本列表(包含每个客户的价格)来计算
  • print(f'some string{}')
    是一个
  • 在函数中使用(例如,
    def calc_cost(value:int)->float:
将numpy导入为np
def calc_成本(值:int)->浮动:
价格=[0,5,10,15,12]
idx=np.数字化(值,箱=[5,10,18,66])
退货价格[idx]+价格[idx]*0.08
成本=列表()
尽管如此:
年龄=输入('您的年龄是多少?')
如果年龄==“退出”:
打破
附加成本(计算成本(整数(年龄)))
#如果成本为空列表,则不会打印任何内容
如果费用:
打印(f'每个用餐者的成本为:{cost}')
印刷(有{len(成本)}食客。)
打印(f'每位就餐者的平均成本为:{sum(成本)/len(成本):.02f}')
打印(f'总餐费:{sum(cost:.02f}')
输出:
您的年龄是多少?4.
你几岁?5.
你几岁?9
你几岁?10
你几岁?17
你几岁?18
你几岁?65
你几岁?66
你几岁?出口
每个餐车的成本为:[0.0,5.4,5.4,10.8,10.8,16.2,16.2,12.96]
共有8位用餐者。
每位就餐者的平均费用为:9.72美元
总餐费:77.76元
如果不允许使用
numpy
def calc_成本(值:int)->浮动
返回值+值*0.08
成本=列表()
尽管如此:
年龄=输入(“该人的饮食年龄是多少?”)
如果年龄==“退出”:
打破
年龄=int(年龄)
如果年龄<5岁:
值=0
elif年龄<10岁:
值=5
elif年龄<18岁:
值=10
elif年龄<66岁:
值=15
其他:
值=12
附加成本(计算成本(价值))
如果费用:
打印(f'每个用餐者的成本为:{cost}')
印刷(有{len(成本)}食客。)
打印(f'每位就餐者的平均成本为:{sum(成本)/len(成本):.02f}')
打印(f'总餐费:{sum(cost:.02f}')
笔记:
  • 不要在所有
    if elif
    条件中使用
    break
    ,因为这会中断
    while循环
  • 每当你重复一些事情,比如计算价格,写一个函数
  • 熟悉自己,如
    列表
    命令
  • 这一个需要将所有金额加在一起,我不确定如何添加。
    • list.append(price)
      在循环中
    • sum(list)
      获取总数

实现这一点最简洁的方法是对年龄进行分类,确定给定年龄属于哪个分类,然后使用指数返回价格

  • 完成这项任务
    • 参数
      bins
      ,包含年龄,并确定给定值适合列表中的哪个索引<代码>存储箱是独占的,因此范围为0-