我尝试了各种代码都无济于事。我正在寻找解决此问题的有效方法。我将在下面提供我尝试过的代码。我认为随机样本的概念在代码中扮演了一定的角色,但不确定该角色是什么。
我尝试了以下代码。以我的经验,我认为“班级”不能解决这个问题,但是我承认,它可能是功能性的,只是没有我想要的功能。我不确定是否需要for循环,但也许是必需的。我被困住了。
class Cards:
def __init__(self):
self.suits = ['Spades','Hearts','Diamonds','Clubs']
self.values = range(1,14)
self.ActualCards = [] #Empty List to Append
for Card in itertools.product(self.suits,self.values):
self.ActualCards.append(Card) #Cartesian Product to Create Deck
这里是指令:编写一个函数扑克(num_cards),该扑克从标准的52张牌中随机抽取num_cards张牌。如果愿意,您可以自由为不同的西装和卡片提出自己的缩写。输出应为包含所需卡数的列表,该卡是从整张纸牌中随机选择的。每张卡应该是自己的字符串。例如,print(poker(2))返回两个随机卡的列表,可以是['C2','H3']或['S6','C12']等。(回复时,请进行测试它可以确保它吐出应有的值,例如print(poker(2))返回2张随机卡的列表,可以是['C2','H3']或['S6','C12']需要注意的是:如果可能的话,我们将提供以下提示:
俱乐部= C,钻石= D,心= H,锹= S(杰克= 11,女王= 12,国王= 13)
(在回答之前,请进行测试以确保准确性,例如print(poker(2))返回两个随机卡的列表,可以是['C2','H3']或['S6',' C12']
答案 0 :(得分:0)
最简单:
import random
SUITS = ['S','H','D','C']
VALUES = range(1,14)
def poker(k):
cards = [suit + str(value) for suit in SUITS for value in VALUES]
return random.sample(cards, k)