python - 如何将此代码更改为不打印未使用的硬币=0?
问题描述
我正在尝试构建一个功能,在人们输入金额后,它将显示他们需要的最少硬币或纸币数量。但这有什么方法可以让我改变它,使它不会打印未使用硬币的名称和编号?(作为初学者)感谢您的帮助!(是否可以通过使用 for 循环来处理它?)
解决方案
不要为每个恶魔保留一个变量,而是保留一个 dict 并根据所使用的面额更新 key: val。查看代码
amount=int(input('Enter an amount: '))
denominations = dict()
print('Total number of notes/coins=')
if amount>=1000:
denominations['1000'] = amount//1000
amount%=1000
if amount>=500:
denominations['500'] = amount//500
amount= amount%500
if amount>=100:
denominations['100'] = amount//100
amount= amount%100
if amount>=50:
denominations['50'] = amount//50
amount= amount%50
if amount>=20:
denominations['20'] = amount//20
amount= amount%20
if amount>=10:
denominations['10'] = amount//10
amount= amount%10
if amount>=5:
denominations['5'] = amount//5
amount= amount%5
if amount>=2:
denominations['2'] = amount//2
amount= amount%2
if amount>=1:
denominations['1'] = amount//1
for key, val in denominations.items():
print(f"{key}: {val}")
Enter an amount: 523
Total number of notes/coins=
500: 1
20: 1
2: 1
1: 1
如果您使用如下所示的简单逻辑,您可以减少代码行数,
def find_denominations():
amount=int(input('Enter an amount: '))
denominations = dict()
DENOMINATIONS = [1000, 500, 100, 50, 20, 10, 5, 2, 1]
print('Total number of notes/coins=')
for d in DENOMINATIONS:
if amount >= d:
denominations[d] = amount // d
amount %= d
for key, val in denominations.items():
print(f"{key}: {val}")
推荐阅读
- python - 将 PDF 文件转换为 HTML 的最佳方法
- android - 如何在类方法中执行 Room 请求?
- java - 使用按钮更改jsp中的变量值
- excel - 从 DataGridView 获取数据(数据取自 excel)并在 vb.net 图表上显示
- javascript - 如何使用 img.src 构造渲染函数
- javascript - 如何根据随机播放的视频在 html 中显示文本?
- javascript - 如何正确地将两个部分放在另一个之下?
- python - 试图将浮点数转换为小数
- java - 如何在 Java 的方法中使用构造函数参数?
- entity-framework - EF Code First 将外键插入/更新限制为给定的 ReferenceType