NSI, liste de liste, grilles et dessin

On considère le code python suivant

data = [
    [0,0,0,0,0,1,1,1,1,0],
    [0,0,0,0,0,1,0,0,1,0],
    [0,0,1,0,1,0,1,1,0,0],
    [0,0,1,0,0,1,1,0,1,0],
    [0,0,1,0,1,0,0,1,1,0],
    [1,0,0,1,0,1,0,0,1,0],
    [0,1,0,0,0,1,1,1,1,1],
    [0,1,0,0,0,0,1,1,1,1],
    [1,0,0,0,1,1,1,0,1,0],
    [1,1,1,1,0,0,0,1,1,0]
]

import matplotlib.pyplot as plt

plt.imshow(data)
plt.show()

Exercice 1 :

Ecrire une fonction croix permettant d’obtenir les résultats suivants

>>>croix(9)

>>>croix(5)

proposition de correction

import matplotlib.pyplot as plt

def croix(n):
    assert n%2==1,"n doit etre impair"
    data=[[0 for i in range(n)] for j in range(n)]
    for i in range(n):
        data[i][n//2]=1
        data[n//2][i]=1
    plt.imshow(data)
    plt.show()
    
def diagonales(n): 
    data=[[0 for i in range(n)] for j in range(n)]
    for i in range(n):
        data[i][i]=1
        data[i][n-1-i]=1
    plt.imshow(data)
    plt.show()
    
def bords(n):
    data=[[0 for i in range(n)] for j in range(n)]
    for i in range(n):
        data[0][i]=1
        data[n-1][i]=1
        data[i][0]=1
        data[i][n-1]=1
    plt.imshow(data)
    plt.show()