Python编码 - 自动售货机 - 如何限制用户只输入特定硬币?
我正在做一个关于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 个回答
2
这里,你想要做的是:
if any(int(coin) not in value for coin in inp.split()):
print("Machine doesn't accept these coins")
这个代码的基本功能是将输入的内容用split
方法分开成不同的硬币,然后把它们转换成整数(因为values
里的项目都是整数),接着检查这些硬币是否在values
中,如果不在,那就说明这个硬币是无效的。
最后,这个过程会一直进行,直到找到一个无效的硬币(可以看看any
)。一旦找到无效的硬币,它就会print
出这些硬币是无效的。如果没有找到无效的硬币,那么就会继续执行else
部分。