我正在写一个函数,可以返回一手牌是否有皇家花红。我尝试过各种不同的方法,但似乎没有一个有效;有些方法返回的结果总是错误的,有些方法返回的结果总是真的。在
下面是一个始终返回true的方法
davesCards = ['10C','10S','QC','KC','AC','10S','4C'] #this should return false
def royalFlushCheck(playerCards):
if '10S' and 'JS' and 'QS' and 'KS' and 'AS' in playerCards:
return True
if '10H' and 'JH' and 'QH' and 'KH' and 'AH' in playerCards:
return True
if '10C' and 'JC' and 'QC' and 'KC' and 'AC' in playerCards:
return True
if '10D' and 'JD' and 'QD' and 'KD' and 'AD' in playerCards:
return True
return False
royalFlushCheck(davesCards)
这将返回True
,当它应该是false时,因为没有Jack of Clubs卡。我假设and
运算符会使它生效,因此只有当所有的卡都在数组中时,函数才会返回True。我对这些东西比较陌生,所以希望贝吉纳能解释一下
(编辑) 我已经被标记为重复,但我已经看到了问题引用,并没有得到我想要的答案,这就是为什么我张贴了我的具体情况的问题。在
您的代码只检查列表中是否有“AS”、“AH”或“AC”、“AD”。 更优雅的方法是使用子集。在
其中
royalFlush = ['AS','JS','QS','KS','10S']
或如评论所示:
^{pr2}$你可以把军衔和官职分开来缩短
相关问题 更多 >
编程相关推荐