Main loop for a text-based Blackjack game
It's &quot;Pythonic&quot; to iterate through items, so assuming that len(joueurs) == nb, your main for loop can be:
    for a, joueur in enumerate(joueurs):

which means all your joueurs[a] become joueur. I'm quite surprised that onze, askoui and perdu functions take the whole joueurs list, not just the current player. How does that work?
I'd guess that the check for possible onze action, which I take it is converting an ace down from 11 points to 1, could more comfortably fit within the askoui function when our current player gets another card, non? Then this main routine could just check against 21, or perhaps even better the askoui function could return a status value.
Difficult to be more specific without getting into some of these auxiliary functions. Here's my best guess at a reduced code that I think should do the same  as you presently have, plus some outstanding issues:
while t:
    input(&quot;Appuyez sur entrer pour continuer...&quot;)
    for ix, jr in enumerate(joueurs):
        jID = ix+1
        while sum(jr) &lt; 21:
            time.sleep(0.5)
            print(&quot;main du joueur&quot;, jID, &quot;:&quot;, jr, &quot;Total :&quot;, sum(jr))
            ask = input(&quot;Joueur {} voulez vous une carte ?(oui/non)&quot;.format(jID))
            if ask == &quot;oui&quot;:
                askoui(joueurs) # why all joueurs?
                if sum(jr) &gt; 21 and 11 in jr:
                    onze(joueurs) # why all joueurs?
            else:
                asknon()
                t = False # immediate halt to play for all players?
                break
        if sum(jr) == 21:
            print(&quot;joueur&quot;, jID, &quot;a BLACKJACK&quot;)
            time.sleep(1) # then play continues
        elif sum(jr) &gt; 21:
            perdu(joueurs) # why all joueurs?
            t = False
        # play continues without message if sum(jr)&lt;21 ?