一、首先我們寫類
可以用len()函式來檢視一副牌有多少張
從一副牌中抽取特定的一張紙牌,比如說第一張或最後一張,是很容易的:deck[0]或deck[-1],這都是由__getitem__方法提供的。
二、隨機選牌
如果我們需要隨機選出三張牌,我們就用random.choice就行,直接加進去就行
三、其他操作
因為__getitem__方法把【】操作交給了self._cards列表,所以我們的deck類自動支援切片(slicing)操作。下面我們列出檢視一副牌中最上面3張和只看牌面是a的牌的操作。其中第二種操作的具體方法是,先抽取索引是12的那張牌,然後每隔13張牌拿1張:
deck = frenchdeck(
)print
(deck[:3
])
[card(rank=
'2', suit=
'spades'
), card(rank=
'3', suit=
'spades'
), card(rank=
'4', suit=
'spades'
)]
deck = frenchdeck(
)print
(deck[12:
:13])
[card(rank=
'a', suit=
'spades'
), card(rank=
'a', suit=
'diamonds'
), card(rank=
'a', suit=
'clubs'
), card(rank=
'a', suit=
'hearts'
)]
迭代通常是隱式的,譬如說乙個集合型別沒有實現__contains__方法,那麼in運算子就會按順序做一次迭代搜素。於是,in運算子可以用在我們的frenchdeck類上,因為它是可迭代的:
deck = frenchdeck(
)print
(card(
'q',
'clubs'
)in deck)
print
(card(
'7',
'beasts'
)in deck)
true
false
C 列印一副撲克牌
public enum pokercolor this.color,this.num 表示一副撲克牌的類 class pokers 定義乙個陣列來存放52張撲克牌 poker pokers new poker 52 用於計數建立的撲克牌個數 int index 0 一副撲克牌類的構造方法 建立一副撲...
撲克牌原始順序 Python實現
前幾天在閒逛的時候,突然看到了乙個關於撲克牌的題目,感覺還挺有意思,就試著分析了一下並用python實現了一下。貼出原題 手中一幅撲克牌,假設順序為abcdef,把第一張放到桌面上,第二張挪到最後,第三張放到桌面,第四張挪到最後,一直到所有牌都在桌面 bcdef a cdefb defb ac ef...
模擬分發撲克牌(python實現)
52張撲克牌發個4個玩家,每人13張。要求 自動生成一幅撲克牌組 洗牌 發牌到玩家手中 將玩家手中撲克牌按花色大小整理好。思路一import random import operator defauto pokers poker for i in for j in a 2 3 4 5 6 7 8 9...