1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| def aff_tab(tab,larg) :
X=len(tab[0])
Y=len(tab)
col_lar=[]
for largeur in range(X) :
A=larg
for hauteur in range(Y) :
if isinstance(tab[hauteur][largeur], str) :
A=max(A,len(tab[hauteur][largeur]))
col_lar.append(A)
print("")
print("+",end="")
for largeur in range(X) :
for cases_lar in range(col_lar[largeur]+2) :
print("-",end="")
print("+",end="")
print("");
for hauteur in range(Y) :
print("| ",end="")
for largeur in range(X) :
if isinstance(tab[hauteur][largeur], float) :
if int(tab[hauteur][largeur])==tab[hauteur][largeur] : # éviter un problème avec les puissances de 10
dec=int(log(abs(tab[hauteur][largeur])+.1)/log(10))
else :
dec=int(log(abs(tab[hauteur][largeur]))/log(10))
if tab[hauteur][largeur]<0 :
dec+=1
if col_lar[largeur]-dec>2 :
ch='0:^.{}f'.format(col_lar[largeur]-dec-2)
ch='{'+ch+'}'
print(ch.format(tab[hauteur][largeur]),end="")
elif col_lar[largeur]-dec==2 :
print('{0:.0f}'.format(tab[hauteur][largeur]),end=".")
else :
print('{0:.0f}'.format(tab[hauteur][largeur]),end="")
elif isinstance(tab[hauteur][largeur], int ) :
ch='0:^{}d'.format(col_lar[largeur])
ch='{'+ch+'}'
print(ch.format(tab[hauteur][largeur]),end="")
elif isinstance(tab[hauteur][largeur], str ) :
ch='0:^{}'.format(col_lar[largeur])
ch='{'+ch+'}'
print(ch.format(tab[hauteur][largeur]),end="")
print(" | ",end="")
print("")
print("+",end="")
for largeur in range(X) :
for cases_lar in range(col_lar[largeur]+2) :
print("-",end="")
print("+",end="")
print("")
tab=[["addfdfsv",62.269874,1000.0,100.0],[465.987456324,5654.69,654.98,0.12345],[-23.354789,-123.456,-1234.456,-100]]
aff_tab(tab,4) |
Partager