You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字典值累加求和问题:循环输入直至Ctrl+D终止

解决方法

你的代码核心问题是没有维护一个累计总金额的变量,每次只输出当前菜品的价格。只需要做以下修改就能实现累加功能:

  1. 在order函数的循环开始前,初始化一个变量来保存累计总金额
  2. 每次匹配到菜单中的菜品时,将对应价格累加到总金额里
  3. 打印时输出累计的总金额,而不是单份菜品的价格

修改后的完整代码:

def main():
    order()


menu = {
    "Baja Taco": 4.00,
    "Burrito": 7.50,
    "Bowl": 8.50,
    "Nachos": 11.00,
    "Quesadilla": 8.50,
    "Super Burrito": 8.50,
    "Super Quesadilla": 9.50,
    "Taco": 3.00,
    "Tortilla Salad": 8.00
}


def order():
    total = 0.0  # 初始化累计总金额
    while True:
        try:
            i = input("Input: ")
            i = i.title()
            if i in menu:
                total += menu[i]  # 将当前菜品价格累加到总金额
                print("total: ${:.2f}".format(total))
        except EOFError:
            print('')
            break


main()

说明:

  • 新增的total变量会在每次输入有效菜品时持续累加价格
  • 用menu[i]直接取值比menu.get(i)更简洁,因为已经判断过i在菜单里了
  • 按下Ctrl+D触发EOFError时,会打印空行并终止循环,符合需求

内容的提问来源于stack exchange,提问作者Jesse_D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:55:22