Python while循环:返回更改任务
我对Python非常陌生,我正在尝试解决一个挑战。任务是: “自动售货机制造商想让他们的机器退回尽可能少的硬币。编写一个程序,接受必须退回的钱的数量,并计算它能得到多少硬币。” 这些硬币是2.00、1.00、0.50、0.20、0.10、0.05、0.02、0.03 这是我的代码:Python while循环:返回更改任务,python,while-loop,Python,While Loop,我对Python非常陌生,我正在尝试解决一个挑战。任务是: “自动售货机制造商想让他们的机器退回尽可能少的硬币。编写一个程序,接受必须退回的钱的数量,并计算它能得到多少硬币。” 这些硬币是2.00、1.00、0.50、0.20、0.10、0.05、0.02、0.03 这是我的代码: change = float(input()) result = 0 while change > 0: while change >= 2: change -= 2
change = float(input())
result = 0
while change > 0:
while change >= 2:
change -= 2
result += 1
while change >= 1:
change -= 1
result += 1
while change >= 0.5:
change -= 0.5
result += 1
while change >= 0.2:
change -= 0.2
result += 1
while change >= 0.1:
change -= 0.1
result += 1
while change >= 0.05:
change -= 0.05
result += 1
while change >= 0.02:
change -= 0.02
result += 1
while change >= 0.01:
change -= 0.01
result += 1
print(result)
我的输入是2.20,打印结果是0,而应该是2。它看起来一点也不循环。谁能解释一下它为什么不循环,我不知道我做错了什么。问题在于浮点运算。当你认为is应该是0时,它永远不会到达那里。所以你的循环永远不存在,因为变化永远不会>0,它只是变得非常小。您应该将阈值(在外部while循环处)设置为大约0.01 问题在于浮点运算。当你认为is应该是0时,它永远不会到达那里。所以你的循环永远不存在,因为变化永远不会>0,它只是变得非常小。您应该将阈值(在外部while循环处)设置为大约0.01 这个对我很有用
change = float(input())
result = 0
while change >= 2:
change -= 2
result += 1
while change >= 1:
change -= 1
result += 1
while change >= 0.5:
change -= 0.5
result += 1
while change >= 0.2:
change -= 0.2
result += 1
while change >= 0.1:
change -= 0.1
result += 1
while change >= 0.05:
change -= 0.05
result += 1
while change >= 0.02:
change -= 0.02
result += 1
while change >= 0.01:
change -= 0.01
result += 1
print(result)
你的第一个while循环并不是真正需要的,因为它只会完成一次,并且会让计算机感到困惑。不幸的是,我不知道为什么它不能与额外的while循环一起工作,但它应该像这样工作(至少对我来说是这样的)。这一个对我有效
change = float(input())
result = 0
while change >= 2:
change -= 2
result += 1
while change >= 1:
change -= 1
result += 1
while change >= 0.5:
change -= 0.5
result += 1
while change >= 0.2:
change -= 0.2
result += 1
while change >= 0.1:
change -= 0.1
result += 1
while change >= 0.05:
change -= 0.05
result += 1
while change >= 0.02:
change -= 0.02
result += 1
while change >= 0.01:
change -= 0.01
result += 1
print(result)
你的第一个while循环并不是真正需要的,因为它只会完成一次,并且会让计算机感到困惑。遗憾的是,我不知道为什么它不能与额外的while循环一起工作,但它应该像这样工作(至少对我来说)。
while change==0:
如果0是输入,它将永远循环,如果不是0,它将立即退出。我假设您只想而change>0
或者如果change>0甚至只想因为您有单独的循环而change==0:
如果0是输入,将永远循环,如果不是0,将立即退出。我假设您只需要而change>0
或者如果change>0
甚至只需要,因为您有单独的循环