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’ (not that there isn’t a playing card at position ‘0’, since we want the ranks to match the indices where possible)

ranks[1]
'A'

source

Card

 Card (suit:int, rank:int)

A playing card, created by passing in ‘rank’ from ‘ranks’ and ‘suit’ from ‘suits’

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

Here is an example:

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 are a test for quality…

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)