Python编码 - 自动售货机 - 如何让用户只输入某些硬币?

时间:2014-04-15 18:06:30

标签: python

我正在对python进行受控评估。其中一项任务是根据特定标准创建自动售货机。我是一个非常糟糕的蟒蛇,我可能是一个白痴,做错了。

我希望用户只输入10,20,50,1.00个硬币。如果用户输入除这些硬币以外的任何东西,我希望它打印“机器不接受这些硬币”。

这是我到目前为止所做的:

inp = input("Enter Coins, Note: Machine only accepts 10, 20, 50 and 100 coins: ")
value = [10,20,50,100]
if inp != value:
    print("Machine doesn't accept these coins")
else:
    print("What would you like to buy?")

1 个答案:

答案 0 :(得分:2)

在这里,你想要:

if any(int(coin) not in value for coin in inp.split()):
    print("Machine doesn't accept these coins")

这基本上是什么split将输入转换为单独的硬币,将它们转换为整数,(因为values中的项是整数)然后检查它是否为not in values,当然这意味着它是无效的。

最后,这样做直到找到无效的硬币(看看any)。那时,print硬币无效。如果没有,那么它将继续else