card–A basic playing card

A simple API for creating and using playing cards

We will be using numbers to represent playing card clubs and ranks. These are the suits:

suits
['♣️', '♦️', '❤️', '♠️']

For instance the suit at index 0:

suits[0]
'♣️'

These are the ranks:

ranks
[None, 'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']

For instance the rank at index 1 (note that there isn’t a playing card at position 0, since we want the ranks to match the indicies where possible):

ranks[1]
'A'

Card

 Card (suit:int, rank:int)

A playing card

Type Details
suit int An index into suits
rank int An index into ranks

Here’s an example of creating and displaying a card:

c = Card(suit=1, rank=3)
c
3♦️

Comparison operators

Equality, less than, and greater than work on the rank and suit indices.

For instance, here’s a test of equality…

test_eq(Card(suit=1, rank=3), Card(suit=1, rank=3))

…and a test of <

assert Card(suit=1, rank=3)<Card(suit=2, rank=3)

…and finally of >:

assert Card(suit=3, rank=3)>Card(suit=2, rank=3)
assert not Card(suit=1, rank=3)>Card(suit=2, rank=3)