国际单项体育联合会会员名单

2024-04-25 17:57:41 发布

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

我现在正试着把我的头脑放在列表理解上,并且试着用尽可能多的列表来构建一个blackkack游戏。我被困在这一点上:

   elif card == (char for char in ["K", "J", "Q"]):
        print("Detected facecard")

我知道使用字典或其他方法可能会更容易,甚至只是扩展循环,但我特别想理解为什么这样做行不通。你知道吗

正在打印中的字符。。。。生成对象类型而不是对象。你知道吗

有什么建议吗?提前谢谢


Tags: 对象方法in游戏列表for字典card
2条回答

vurmux的评论是正确的方法,但以下是您所做的不起作用的原因:

(char for char in ["K", "J", "Q"])是一个生成器,因此实际发生的是python将card与该生成器进行比较,结果总是错误的。你知道吗

>> x = (char for char in ["K", "Q", "J"])
>> print(x)
<generator object <genexpr> at 0x7f10752d4410>

(char for char in ["K", "J", "Q"])构造生成器:

<generator object <genexpr> at 0x7f97e9f8f200>

所以你试着比较一张卡片(我认为它不是生成器:))和生成器。总是False。您只需检查card是否在["K", "J", "Q"]

elif card in ['K', 'J', 'Q']:

相关问题 更多 >