Fonction print(), vrai débutant

Fermé
ano - Modifié par ano le 23/03/2014 à 12:51
 ano - 24 mars 2014 à 06:44
Bonjour,

J'utilise IDLE avec python 3.3 (linux_powered)


J'essaye de dessiner un échiquier, damier ou autres dimensions ...

mon code (ici un carré de 3*3 cases) :
x=3       #nb de cases en abscice
H=3       #hauteur du corps de la case
y=x       #nb de cases en ordonnée
L=H*2     #largeur du corps de la case

top=("+" + "-"*L)*x + "+" + "\n"   #Première ligne du dessin d'une ou plusieurs cases
mid=("|" + " "*L)*x + "|" + "\n"   #Une ligne du corps du dessin d'une ou plusieurs cases
bot=top                            #Dernière ligne du dessin d'une ou plusieurs cases
case=top + mid*H
print(case*y, bot*2)               #Je reproduis la dernière ligne pour mettre en évidence le problème



Qui retourne une fois exécuté :
+------+------+------+
|........|........|.......|
|........|........|.......|
|........|........|.......|
+------+------+------+
|........|........|.......|
|........|........|.......|
|........|........|.......|
+------+------+------+
|........|........|.......|
|........|........|.......|
|........|........|.......|
.+------+------+------+ << un décalage
+------+------+------+


NB : le forum n'accepte pas les récurrences d'espacement, j'utilise le "." pour les symboliser.
J'ai donc un décalage à l'affichage de "bot" la première fois, mais pas au deuxième affichage.


Je n'arrive pas à me l'expliquer. Merci pour votre aide.
A voir également:

1 réponse

La fonction print() ajoute par défaut un caractère vide entre chaque paramètre passé en argument.
Il faut utiliser le paramètre "sep=".

Ici :
print(case*y, bot, sep="")
0