一摞python风格的纸牌

定义一个纸牌类

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

一摞python风格的纸牌_第1张图片

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)

你可能感兴趣的:(一摞python风格的纸牌)