如何用Python详细实现一副扑克牌的创建过程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计999个文字,预计阅读时间需要4分钟。
整理一下,通过Python类属性创建一个去除大王、小王后的52张扑克牌,并实现随机抽牌、排序、洗牌等功能;创建一个纸牌类,包含一副扑克牌。
整理一下通过本文分享给大家, 该案例是通过 Python 类属性创建一幅除去大王、小王之后的 52 张扑克牌,并实现随机抽牌、排序、洗牌等功能;
创建一个纸牌类
一副扑克除去大王小王之外,剩下的 52 张纸牌以花色为基准(梅花、方块、黑桃、红心)可分为 4 组,每组有 13 张牌组成;因此可创建两个列表一个来存储花色,一个存储 13 个字符;通过两个列表之间的随机组合来生成 52 张纸牌,
代码如下:
代码中通过collections.namedtuple模块创建一个类来表示一幅纸牌,['rank','suit']分别表示纸牌中的字符(2-10,J-A)和花色;
FranchDeck 类来建 52 张纸牌,其中有两个特殊方法,len() 返回纸牌数量,__getitem__() 获取 position(索引) 下的指定纸牌
随机抽取一张牌
这里借助 random 模块实现随机抽牌的功能
列表迭代、切片
因为 __getitem__ 方法 把 [] 操作交给 self._cards 列表 ,除了上面提到的 index 定位之外,FranckDeck() 类还可实现切片、迭代操作;
排序操作
常规来说,依据点数来判断扑克牌的大小的话,2最小,A最大。
本文共计999个文字,预计阅读时间需要4分钟。
整理一下,通过Python类属性创建一个去除大王、小王后的52张扑克牌,并实现随机抽牌、排序、洗牌等功能;创建一个纸牌类,包含一副扑克牌。
整理一下通过本文分享给大家, 该案例是通过 Python 类属性创建一幅除去大王、小王之后的 52 张扑克牌,并实现随机抽牌、排序、洗牌等功能;
创建一个纸牌类
一副扑克除去大王小王之外,剩下的 52 张纸牌以花色为基准(梅花、方块、黑桃、红心)可分为 4 组,每组有 13 张牌组成;因此可创建两个列表一个来存储花色,一个存储 13 个字符;通过两个列表之间的随机组合来生成 52 张纸牌,
代码如下:
代码中通过collections.namedtuple模块创建一个类来表示一幅纸牌,['rank','suit']分别表示纸牌中的字符(2-10,J-A)和花色;
FranchDeck 类来建 52 张纸牌,其中有两个特殊方法,len() 返回纸牌数量,__getitem__() 获取 position(索引) 下的指定纸牌
随机抽取一张牌
这里借助 random 模块实现随机抽牌的功能
列表迭代、切片
因为 __getitem__ 方法 把 [] 操作交给 self._cards 列表 ,除了上面提到的 index 定位之外,FranckDeck() 类还可实现切片、迭代操作;
排序操作
常规来说,依据点数来判断扑克牌的大小的话,2最小,A最大。

