Bonjour ,

Alors voila j'aurais besoin d'aide
Je souhaite faire un périmètre d'étoile d'une zone défini par le nombre de colonnes et de lignes .
Par exemple pour : nlign=4 et ncols=3 , je dois obtenir :
* * * * *
* *
* *
* *
* *
* * * * *
(le schema ne s'affiche pas correctement mais vous avez compris la 2eme colonne d'étoile dois être au bout pour former un rectangle vide)
à l'interieur j'obtiens bien 12 cases , j'ai essayer plusieurs codes mais sans succès j'obtiens : ***** pour la ligne du haut et du bas au lieu de * * * * *



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
     nligs,nCols=3,6
     s=init_liste(nligs,nCols)
     for x in range(0,nCols+2): 
        print("+",end=' ');
    print()
    for i in s:
        print("*",' '*(nCols+2),'  ',"*")
 
    for j in range(0,nCols+2):
        print("*",end=' ')
    print()
Avec les valeurs 3,6 j'obtiens exactement ce que je veut , mais si j'inverse et que je met nligs=6 et ncols=3 , sa marche pas .
Quelqu'un aurais une idée pour réaliser ce que je souhaite sans avoir à modifier le programme à chaque fois en fonction des valeurs entrer.
Sachant que "s=init_liste" est une fonction qui permet d'initialiser linterieur de la zone
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
def init_liste(nligs,nCols):
        l=[] 
        for i in range(nligs):
                l.append(['']*nCols)
        return l
Merci