""" card.py working on the homewor in class """ from random import randint # 0 1 2 3 ranknames = [None, 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Jack', 'Queen', 'King' ] suitnames = ['Clubs', 'Diamonds', 'Hearts', 'Spades'] suitletters = ['c', 'd', 'h', 's'] # This dictionary does what convert_letter does ... # only better and faster. suitindexes['c'] is just 0 suitindexes = {'c': 0, 'd': 1, 'h': 2, 's': 3 } def convert_letter(letter): """ convert c,d,h,s to 0,1,2,3 """ if letter == 'c': return 0 elif letter == 'd': return 1 elif letter == 'h': return 2 elif letter == 's': return 3 else: raise Exception("IncorrectSuitLetter") class Card: def __init__(self, rank, suit ): # rank is a number 1 to 13 # suit is "c", "d", "h", or "s" # will want to show "Four of Clubs" for 4, "c" self.rankindex = rank self.suitindex = convert_letter(suit) def __str__(self): rankname = ranknames[self.rankindex] suitname = suitnames[self.suitindex] return f"{rankname} of {suitname}" def random_card(): """ Create and return a random card """ rank = randint(1, 13) letter = suitletters[randint(0,3)] return Card(rank, letter) def main(): card = random_card() print(card) if __name__ == '__main__': main()