原文: https://www.programiz.com/python-programming/examples/shuffle-card

在此程序中,您将学习使用random模块打乱一副纸牌。

要理解此示例,您应该了解以下 Python 编程主题:


源代码

  1. # Python program to shuffle a deck of card
  2. # importing modules
  3. import itertools, random
  4. # make a deck of cards
  5. deck = list(itertools.product(range(1,14),['Spade','Heart','Diamond','Club']))
  6. # shuffle the cards
  7. random.shuffle(deck)
  8. # draw five cards
  9. print("You got:")
  10. for i in range(5):
  11. print(deck[i][0], "of", deck[i][1])

输出

  1. You got:
  2. 5 of Heart
  3. 1 of Heart
  4. 8 of Spade
  5. 12 of Spade
  6. 4 of Spade

注意:再次运行程序以洗牌。

在程序中,我们使用了itertools模块中的product()函数来创建一副纸牌。 此函数执行两个序列的笛卡尔积。

这两个序列是从 1 到 13 的数字和四个西装。 因此,总共有13 * 4 = 52个项目,每张卡都作为一个元组。 例如,

  1. deck[0] = (1, 'Spade')

我们的卡座是有序的,因此我们使用random模块中的shuffle()函数对其进行混洗。

最后,我们画出前五张卡片并将其显示给用户。 每次您运行该程序时,我们都会得到不同的输出,如两个输出所示。

在这里,我们使用了 Python 随附的标准模块itertoolsrandom