2024-04-25 17:57:41 发布
网友
我现在正试着把我的头脑放在列表理解上,并且试着用尽可能多的列表来构建一个blackkack游戏。我被困在这一点上:
elif card == (char for char in ["K", "J", "Q"]): print("Detected facecard")
我知道使用字典或其他方法可能会更容易,甚至只是扩展循环,但我特别想理解为什么这样做行不通。你知道吗
正在打印中的字符。。。。生成对象类型而不是对象。你知道吗
有什么建议吗?提前谢谢
vurmux的评论是正确的方法,但以下是您所做的不起作用的原因:
(char for char in ["K", "J", "Q"])是一个生成器,因此实际发生的是python将card与该生成器进行比较,结果总是错误的。你知道吗
(char for char in ["K", "J", "Q"])
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"]:
False
["K", "J", "Q"]
elif card in ['K', 'J', 'Q']:
vurmux的评论是正确的方法,但以下是您所做的不起作用的原因:
(char for char in ["K", "J", "Q"])
是一个生成器,因此实际发生的是python将card
与该生成器进行比较,结果总是错误的。你知道吗(char for char in ["K", "J", "Q"])
构造生成器:所以你试着比较一张卡片(我认为它不是生成器:))和生成器。总是
False
。您只需检查card
是否在["K", "J", "Q"]
:elif card in ['K', 'J', 'Q']:
相关问题 更多 >
编程相关推荐