Skip to main content
Engineering LibreTexts

18.4: Decks

  • Page ID
  • Now that we have Cards, the next step is to define Decks. Since a deck is made up of cards, it is natural for each Deck to contain a list of cards as an attribute.

    The following is a class definition for Deck. The init method creates the attribute cards and generates the standard set of fifty-two cards:

    class Deck:
        def __init__(self):
   = []
            for suit in range(4):
                for rank in range(1, 14):
                    card = Card(suit, rank)

    The easiest way to populate the deck is with a nested loop. The outer loop enumerates the suits from 0 to 3. The inner loop enumerates the ranks from 1 to 13. Each iteration creates a new Card with the current suit and rank, and appends it to

    • Was this article helpful?