In [1]:
def couleur(couleur):
    """
    couleur -- chaîne  qui vaut 'coeur' ou 'carreau' ou 'trèfle' ou 'pique'
    
    renvoie la liste des cartes de cette couleur.
    """
    assert couleur in ('coeur', 'carreau', 'trèfle', 'pique'), "La couleur proposée n'existe pas."
    return [(couleur, k) for k in range(1,14)]
        
In [2]:
def jeu_de_cartes():
    """
    renvoie la liste des 13*4 cartes.
    """
    return couleur('coeur') + couleur('carreau') + couleur('trèfle') + couleur('pique')
In [3]:
jeu = jeu_de_cartes()
In [4]:
antoine = []  # jeu du joueur Antoine
In [5]:
basile = [] # jeu du joueur Basile
In [6]:
from random import randint
def distribue_une_carte(joueur):
    """
    joueur -- liste des cartes d'un joueur
    
    tire une carte au hasard dans le jeu de cartes, la supprime du jeu de cartes,
    l'ajoute au jeu du joueur.
    """
    # choix d'une carte au hasard dans le jeu (et suppression de cette carte du jeu):
    carte = jeu.pop(randint(0,len(jeu)-1))
    # ajout de la carte choisie dans le jeu du joueur:
    joueur.append(carte)
In [7]:
def distribue_jeu(n, joueur1, joueur2):
    """
    n -- nombre de cartes à distribuer à chaque joueur.
    joueur1 -- liste des cartes du joueur 1
    joueur2 -- liste des cartes du joueur 2
    
    distribue n cartes à chaque joueur.
    """
    assert 2*n <= len(jeu), "Attention, il n'y a pas assez de cartes dans le jeu."
    for k in range(n):
        distribue_une_carte(joueur1)
        distribue_une_carte(joueur2)
In [8]:
distribue_jeu(5, antoine, basile)
In [9]:
antoine
Out[9]:
[('pique', 2), ('carreau', 6), ('trèfle', 12), ('trèfle', 4), ('pique', 12)]
In [10]:
basile
Out[10]:
[('carreau', 9), ('coeur', 11), ('carreau', 13), ('trèfle', 3), ('carreau', 2)]
In [ ]: