您的当前位置:首页正文

如何用namedtuple在python中做扑克牌?

2024-08-01 来源:化拓教育网

在学习了namedtuple的几种使用后,今天小编为大家带来一个有意思的教学,那就是用namedtuple做一副扑克牌。提到玩游戏方面的学习,相信很多小伙伴都非常感兴趣,有一些喜欢牌类游戏的可要集中精神看以下的内容了。代码方面不是很复杂,但是我们出错就不能进行后续的游戏了。下面我们就看看如何用namedtuple做扑克牌吧。


Python中实现 len方法的对象,可以直接通过len(object)调用,实现getitem方法的对象,是一个可迭代对象,该对象可以进行for循环遍历,可以通过[index]索引操作。

这里,通过命名元组namedtuple与特殊方法结合,实现一副扑克牌。

这里扑克牌只有两个属性,一个是面值大小,一个是牌色(黑桃,方块,梅花,红心)

所以,创建一个扑克牌的类只需要一句话,

Card = collections.namedtuple('Card', ['牌值', '牌色'])

现在创建一副扑克牌对象。

class FrenchDeck():
    # ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
    ranks = [str(i) for i in range(2, 11)] + list('JQKA')
    # ['黑桃', '方块', '梅花', '红心']
    suits = '黑桃 方块 梅花 红心'.split(' ')
 
    def __init__(self):
        self._cards = [Card(rank, suit) for rank in self.ranks for suit in self.suits]
 
    def __len__(self):
        return len(self._cards)
 
    def __getitem__(self, position):
        return self._cards[position]

补充:len()函数语法

len(object)

函数返回一个大于0的int型整数,表示对象的项目个数。

以上就是我们用namedtupl做扑克牌的方法了,想要进一步玩扑克牌类游戏的,也可以找寻一下在python中玩牌的方法。