一摞python风格的纸牌

定义一个纸牌类

下例的代码建立了一个纸牌类

1、上述例子中使用collections.namedtuple构建了一个简单的类来表示一张纸牌,namedtuple常用来构建只有少数属性但是没有方法的对象。

求纸牌的数量

通过定义__len__()函数来获取一摞纸牌的数量

deck = FrenchDeck()

len(deck)

抽取一张纸牌

通过定义__getitem__()函数抽取一张纸牌

纸牌的排序

我们按照常规,用点数来判定扑克牌的大小,2最小,A最大;同时还要加上对花色的判定,黑桃最大,红桃次之,方块再次,梅花最小。下面就是按照这个规则来给扑克牌排序的函数

suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)

def spades_high(card):

    rank_value = FrenchDeck.ranks.index(card.rank)

    return rank_value * Len(suit_values) + suit_values[card.suit]

>>>for card in sorted(deck, key=spades_high):

...            print(card)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容