在if语句中包含超过1个随机生成的项

2024-04-20 09:45:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个“老虎机”代码,不能在if语句中使用列表中的多个项,因此我可以为不同的项组合设置单独的语句

尝试使用 如果随机项目中的“项目1”和“项目2”: 或 如果随机项中的“item1”和“item1”: 但它只会抓住其中一个

items = ["diamond", "bomb", "apple"]
rand_items = (random.choices(items, k=3))
            print (rand_items)
            if "bomb" in rand_items:
                print ("Game over.")
                break
            elif "bomb" and "diamond" in rand_items:
                print("You may spin again.")
            elif "diamond" and "diamond" in rand_items:
                print("You won £25.")

它应该采取这两个项目,如果是钻石和炸弹,继续或如果有两个(超过1)钻石'给'钱


Tags: and项目代码inyouifitems语句
2条回答

您需要首先检查"bomb""diamond"是否都在选项中,然后您可以只检查炸弹。我还建议使用set.issubsetinstead of multiple conditions in the if. Also makingitemsaset`在这里也更有意义

from random import choices

items = ["diamond", "bomb", "apple"]
rand_items = set(choices(items, k=3))

if {"bomb", "diamond"} <= rand_items:
    print("You may spin again.")
elif "bomb" in rand_items:
    print ("Game over.")
elif "diamond" in rand_items:
    print("You won £25.")

这里需要一个else,因为如果随机选择都是"apple",就不会发生任何事情

请注意,此语法不正确:

elif "bomb" and "diamond" in rand_items:

正确的写作方法是:

elif "bomb" in rand_items and "diamond" in rand_items:

。。。另一种情况也是一样。现在,为了检查一个项目是否在列表中出现两次,您可以对其进行计数:

elif rand_items.count("diamond") == 2:

相关问题 更多 >