Aller au contenu

Affichage d'une grille

Affichage texte

Dans cet autre fichier, on choisit d'afficher la grille en console.

Lisez le texte de la fonction, essayez d'en comprendre l'essentiel et enfin utilisez ce fichier depuis un autre fichier python pour afficher une matrice.

texte du fichier .py
def afficher(tab, taille_case=3):
    """
    tab - tableau 2D (liste de listes d'entiers ou de string)
    taille_case - entier
    Sortie: None 
    Affichage du tableau en console  
    où chaque case est "large" de taille_case caractères
    Les numéros des lignes s'affichent à gauche du plateau
    Les numéros des colonnes s'affichent au-dessus du plateau
    """

    def ligne_to_str(ligne, numero_ligne):
        """
        renvoie une chaîne de caractères représentant une ligne 
        de la grille
        """
        representation_ligne = "  |" + ((" "*(taille_case+2) + "|")*nb_colonnes) + "\n"

        representation_ligne += str(numero_ligne) + " |" 
        for element in ligne:
            element = str(element)
            while len(element) < taille_case:
                element = " " + element
                if len(element) < taille_case: element = element + " "
            representation_ligne += " "+element + " |" 
        representation_ligne += "\n"
        representation_ligne += "  |" + (("_"*(taille_case+2) + "|")*nb_colonnes)  + "\n"
        return representation_ligne


    # affichage des numéros de colonnes:
    nb_colonnes = len(tab[0])
    representation = "  "
    for i in range(0, nb_colonnes):
        num = str(i)
        while len(num) < taille_case+2:
            num = " " + num
            if len(num) < taille_case+2: num = num + " "
        representation += " " + num 
    representation += "\n"

    # représentation des lignes
    representation += "   " + "_" * (nb_colonnes*(taille_case+3)-1) + "\n"
    for numero_ligne, ligne in enumerate(tab):
        representation += ligne_to_str(ligne, numero_ligne)

    print(representation)
Solution

Une utilisation:

from affiche_texte import afficher
matrice = [ [ i-j for j in range(5)] for i in range(7)]
afficher(matrice)