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

如何在硬币找零计算器中仅显示数量大于零的硬币?

硬币找零计算器优化需求

我正在开发一款硬币找零计算器,已经写完全部代码,但无法实现仅显示所需硬币(不显示数量为0的硬币)。当前程序运行时会输出所有硬币类型,包括数量为0的quarters(25美分)、dimes(10美分)、nickels(5美分),示例输出如下:

Enter change amount to convert: 3
0 quarter(s)
0 dime(s)
0 nickle(s)
3 penny(ies)
Want to calculate another amount? (y/n): 

我希望不显示quarters、dimes和nickels这类数量为0的硬币,现有Python代码如下:

while True:
    change = input("Enter change amount to convert: ")
    if str(change).isnumeric():
        change = int(change)
        if change < 100:
            quarters, dimes, nickels, pennies = coinCalc(change)
            print(quarters, "quarter(s)")
            print(dimes, "dime(s)")
            print(nickels, "nickle(s)")
            print(pennies, "penny(ies)")
            print("Want to calculate another amount? (y/n): ")
            answer = input()
            if answer == "n":
                print("Bye!")
                break
        else:
            print("Error! Invalid integer entered please try again.")
    else:
        print("Error! Invalid integer entered please try again.")

解决方案

你可以通过将硬币数量与名称配对,遍历后仅打印数量大于0的项来实现需求,修改后的代码如下:

while True:
    change = input("Enter change amount to convert: ")
    if str(change).isnumeric():
        change = int(change)
        if change < 100:
            quarters, dimes, nickels, pennies = coinCalc(change)
            # 组合硬币数量与对应名称
            coin_list = [
                (quarters, "quarter(s)"),
                (dimes, "dime(s)"),
                (nickels, "nickle(s)"),
                (pennies, "penny(ies)")
            ]
            # 仅输出数量大于0的硬币
            for count, label in coin_list:
                if count > 0:
                    print(count, label)
            print("Want to calculate another amount? (y/n): ")
            answer = input()
            if answer == "n":
                print("Bye!")
                break
        else:
            print("Error! Invalid integer entered please try again.")
    else:
        print("Error! Invalid integer entered please try again.")

说明

  • 将每种硬币的数量和名称打包成元组存入列表,便于统一遍历处理
  • 通过if count > 0的判断,过滤掉数量为0的硬币条目,只输出实际需要的找零硬币

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:55:24