nomsChevaux = ['Abo Volo', 'Amazone B', 'Artic Winner', 'Aubrion du Gers', 'Bahama', 'Bélina Josselyn', 'Bellino II', 'Bibi Lolo', 'Bold Eagle', 'Capitaine Caverne', 'Coktail Jet', 'Commander Crowe', 'Copiad', 'Courlis du Pont', 'Dada de Dali', "Défi d'Aunou", 'Dream With Me', 'Dune', 'Éléazar', 'Étoile du couchant', 'Exploit Caf', 'Fakir du Vivier', 'Fan Idole', 'Fanacques', 'Fandango', 'Fanfaron exotique', 'First de Retz', 'Gai Brillant', 'Gardien du Mordor', 'Gélinotte', 'Général du Pommeau', 'Gidde Palema', 'Giesolo de Lou', 'Gigant Neo', 'Golgoth IV', 'Greyhound', 'Hadol du Vivier', 'Holly du Locton', 'Idéal du Gazon', 'Insert Gédé', 'Jag de Bellouet', 'Jardy', 'Jamin', 'Jorky', "Joyau d'Amour", 'Kaiser Trot', 'Kerjacques', 'Kesaco Phedo', 'Koko le moko', 'Kool du Caux', "L'Amiral Mauzun", "Lady d'Auvrecy", 'Love You', 'Lurabo', "Lutin d'Isigny", 'Mack Lobell', 'Maharajah', 'Masina', 'Meaulnes du Corta', 'Minou du Donjon', 'Mon Tourbillon', 'Moni Maker', 'Muscle Hill', 'Nuncio', 'Offshore Dream', 'Oligo', 'One du Rib', 'Opal Viking', 'Orlando Vici', 'Ourasi', 'Ovidius Naso', 'Oyonnax', 'Ozo', "Paradigme d'Auteuil", 'Passeport', 'Peace Corps', 'Pearl Queen', 'Philanthrope élégant', 'Pirate écarlate', 'Podosis', "Potin d'Amour", 'Pro Patria', 'Queila Gédé', 'Quérido II', 'Rapide Lebel', 'Ready Cash', 'Readly Express', 'Reine du Corta', "Rêve d'Udon", 'Revenue', 'Rockabilly', 'Roquépine', 'Roxane Griff', 'Sea Cove', 'Sebastian K.', 'Shandernagor', 'Speed Clayettois', 'Syzigie extrême', 'Ténor de Baune', 'Tidalium Pelo', 'Timoko', 'Tornese', 'Toscan', 'Ua Uka', 'Ultra Ducal', 'Une de Mai', 'Uno Atout', 'Up and Quick', 'Uranie', 'Ursulo de Crouay', 'Varenne', 'Victory Tilly', 'Vivier de Montfort', 'Vourasie', 'Zoogin']
coursesChevaux = [[3, 0, 7, 4, 7, 8, 5, 0, 2, 8], [8, 6, 7], [2, 4, 4, 8], [3, 0, 1, 6], [2, 3, 8, 4, 3, 4, 2, 0], [8, 5, 3, 5, 5], [3, 1], [0, 3, 4, 7, 0, 6, 8, 5], [3, 2, 2], [3, 8, 0, 8, 1], [1, 2, 3], [1, 0, 4, 5], [7], [4, 8, 1, 0, 7], [3, 2, 8, 8, 5], [4, 1, 1], [6, 3, 1], [2, 5, 7, 6, 8, 8, 2, 3, 3, 1], [2, 1, 6, 2], [8, 8, 7], [7, 2, 1], [1, 7, 8, 8, 1, 6, 2, 2, 0, 3, 8, 1, 5, 7, 4, 8], [1, 1, 2, 1], [2, 8, 6, 0], [0, 5, 7, 6, 7], [2, 8, 4, 4, 6], [4], [7, 8, 1], [4, 0, 8, 0, 2, 2, 7], [2, 0, 1, 7], [0, 0, 7, 8], [1, 0, 2], [0, 1, 2], [0, 1, 2, 8, 1], [2, 4, 1, 5, 6, 6, 1, 4, 5, 3, 5, 3, 4, 3, 4, 7], [2, 2, 4, 8], [1, 6, 8, 1, 0, 7, 7, 0, 7], [2, 7, 4, 3, 4, 3, 8, 7, 5], [1, 3, 6, 1, 7], [8, 7, 6, 1, 3], [7, 2, 8], [3, 3, 8, 8, 2], [2, 2, 8, 3, 8, 0, 0, 6, 7, 3, 5, 4, 8, 1, 3], [6, 8, 2, 3], [0, 3, 1, 1, 6, 0, 1], [4, 7, 8], [6, 8, 8, 1], [1, 8, 8, 0, 8], [8, 4, 4, 3], [8, 3, 8, 3, 8], [1, 0, 8, 6], [1, 7, 8, 2, 1], [2, 8, 2, 0, 3], [5, 6, 2, 2, 1], [3, 2, 2, 7, 0, 3, 1], [5, 8, 6, 5], [2, 7, 3], [0, 7, 5, 7, 2, 5, 6, 8, 2, 5], [5, 6, 1, 7, 5, 1, 1], [4], [5, 7, 8], [0, 4, 3, 3, 1, 0, 1, 6, 2, 0], [1, 5, 4, 8, 5, 2], [8, 2, 0, 6, 2], [3, 2, 0], [6, 4, 4, 5, 3], [8, 6, 5, 3, 4, 1, 2, 8, 8, 7], [1, 2, 2, 4, 5, 5, 1], [1, 2, 1, 0], [6, 7, 8], [2, 0, 8], [8, 3, 0, 7], [5, 5, 7, 5, 1, 4], [3, 6, 1, 8, 2, 1, 7, 6, 7, 1, 6, 4, 0, 2, 0, 4], [8, 7, 5], [3, 3, 1, 8], [2, 7, 4, 1], [1, 1, 8, 1], [2], [1, 8, 7, 2, 8, 6, 1], [7, 2, 8, 7], [2, 4, 6, 0], [8, 8, 6, 4, 4], [8, 6, 3], [7, 8, 1, 3, 6], [0, 0, 1, 7, 4, 7, 8, 1, 1, 7], [2, 6, 4, 8, 6], [1, 0, 7, 1], [5, 0, 1, 6], [7, 1, 3, 3, 7, 2, 1], [0, 1, 1, 8, 6], [7, 4, 1, 1, 7], [4, 3, 1, 6, 6, 8, 8, 1], [0, 7, 5, 1], [1, 0, 6, 6, 2], [3, 3, 7, 1, 2], [4, 8, 4, 4], [1, 1, 7], [0, 8, 8, 5, 7], [4, 6, 2, 8], [3, 1, 6], [8, 0, 2, 3], [3, 4, 2, 1], [8, 5], [2, 0, 4, 8, 4, 5, 2, 8, 1, 7], [5, 0, 1, 1], [6, 8, 1, 1, 0, 4, 6], [4, 6, 2, 5, 8], [4, 4, 2, 2, 7, 2, 4], [0, 8, 5, 3, 1], [2, 5, 0, 6, 7], [1, 5], [4, 1], [1, 2, 5], [5, 1, 6, 8, 1]]


##################################################################################
# Question 1
##################################################################################



"""
##################################################################################
# Question 2
##################################################################################

# Ecrire votre fonction indexCheval(nom, liste) ici

# Test de la fonction
listeTest = ['Bahama', 'Étoile du couchant', 'Gorgonzola','Pirate écarlate']
for nom in listeTest:
    print("Index du cheval '",nom,"' :",indexCheval(nom, nomsChevaux))




##################################################################################
# Question 3
##################################################################################

# Ecrire votre fonction nbCoursesMax(liste) ici

# Test de la fonction
print('Il y a eu au maximum', nbCoursesMax(coursesChevaux), 'courses disputées par le même cheval')


# Ecrire votre fonction plusGrandCoureur(liste) ici

# Test de la fonction
indexCheval = plusGrandCoureur(coursesChevaux)
print('Le cheval ayant couru le plus de courses est', nomsChevaux[indexCheval], \
      'avec', len(coursesChevaux[indexCheval]), 'courses disputées')


# Ecrire votre fonction plusGrandCoureur_v2(liste) ici

# Test de la fonction
indexChevaux = plusGrandCoureur_v2(coursesChevaux)
print('Il y a ', len(indexChevaux), 'chevaux ex-aequo sur le nombre de courses disputées (',
      len(coursesChevaux[indexCheval]), '). Voici leurs noms :')
for indexCheval in indexChevaux :
    print(nomsChevaux[indexCheval], '( index', indexCheval, ')')



##################################################################################
# Question 4
##################################################################################

# Ecrire votre fonction afficheRang(rang) ici

def palmares(indexCheval, liste) :
    # Procédure qui affiche le palmares d'un cheval dont on fournit l'index en argument
    # Cette procédure utilise la fonction afficheRang()
    courses = liste[indexCheval]
    for i in range(len(courses)) :
        print(afficheRang(courses[i]), end='')
        if i < (len(courses) - 1) :    # Si ce n'est pas le dernier
            print(', ',end='')         # on affiche une virgule

# Test de la fonction
listeTest = ['Bahama', 'Étoile du couchant', 'Lurabo','Pirate écarlate']
print('Palmarès de quelques chevaux :')
for nomCheval in listeTest:
    print(nomCheval, ': ',end='')
    palmares(indexCheval(nomCheval, nomsChevaux), coursesChevaux)
    print()


##################################################################################
# Question 5
##################################################################################

# Ecrire votre fonction nbOccurences(nombre, tableau) ici

# Ecrire votre fonction meilleurPremier(liste) ici


# Test de la fonction
premier = meilleurPremier(coursesChevaux)
print('Le cheval qui a fini premier le plus de fois est', nomsChevaux[premier[0]], \
      'avec', premier[1], 'victoires')


# Ecrire votre fonction meilleursPremiers(liste) ici

# Test de la fonction
premiers = meilleursPremiers(coursesChevaux)
print('Il y a', len(premiers[0]), 'chevaux ex-aequo sur le nombre de victoires (',
      premiers[1], '). Voici leurs noms :')
for index in premiers[0] :
    print(nomsChevaux[index], '( index', index, ')')


##################################################################################
# Question 6
##################################################################################

# Ecrire votre fonction somme(tableau) ici

# Ecrire votre fonction indexMeilleurCheval(liste) ici



# Test de la fonction
meilleur = indexMeilleurCheval(coursesChevaux)
print('Le meilleur cheval est', nomsChevaux[meilleur], '( index', meilleur, \
      ') avec une moyenne de', sum(coursesChevaux[meilleur]) / len(coursesChevaux[meilleur]))

# Ecrire votre fonction indexMeilleurCheval_v2(liste) ici

# Test de la fonction
meilleur = indexMeilleurCheval_v2(coursesChevaux)
print('Le meilleur cheval SANS TENIR COMPTE DES ABANDONS est', nomsChevaux[meilleur], \
      '( index', meilleur,') avec une moyenne de', \
      sum(coursesChevaux[meilleur]) / len(coursesChevaux[meilleur]))
"""
