1.参考资料是维基百科的扑克牌词条,不是正经的争论,只是讨论代码为什么要这样写。2.扑克牌的由来importcollectionsCard=collections.namedtuple('Card',['rank','suit'])classFrenchDeck:ranks=[str(n)forninrange(2,11)]+list('JQKA')suits='黑桃方块红心'.split()def__init__(self):self._cards=[Card(rank,suit)forsuitinself.suitsforrankinself.ranks]def__len__(self):returnlen(self._cards)def__getitem__(self,position):returnself._cards[position]类名是“FrenchDeck”——当我看书的时候,我想知道为什么用“French”。扑克牌有可能是法国的吗?发明?根据维基百科的解释:最常见的扑克牌类型是法式标准52张牌。小丑”)。3.花色顺序suit_values=dict(spades=3,hearts=2,diamonds=1,clubs=0)defspades_high(card):rank_value=FrenchDeck.ranks.index(card.rank)returnrank_value*len(suit_values)+suit_values[card.suit]花色的顺序是:黑桃(spades)>红心(hearts)>方块(diamonds)>梅花(clubs)(注意:可以按字母顺序记住:s>h>d>c)。(注:不同地方花色名称和顺序略有不同,在我自己的家乡是:黑桃(大花)>红心(奉承)>梅花(梅花)>方块(利肝))4.啤酒card>>>beer_card=Card('7','diamonds')>>>beer_cardCard(rank='7',suit='diamonds')看到“beer_card”的时候很好奇为什么用“beer”?请参阅维基百科啤酒卡条目。啤酒卡是Square7的非正式称呼,至于游戏怎么玩我不是很了解,这里就不多说了。
