L' utilisation print "a\tb"me donne a (8 spaces)bdans le cmdsur Windows. Pourquoi imprime-t-il 8 espaces au lieu du caractère de tabulation.
Iulian Onofrei
Que vous attendiez-vous d'autre?
Simone
8
À affichera (tab character)b
Iulian Onofrei
@IulianOnofrei Un caractère de tabulation est un caractère non imprimable, également appelé espace blanc. Vous ne voyez rien lorsque vous appuyez sur la touche Tab. Il déplace simplement le texte d'un nombre d'espaces par défaut. Peut-être que vous pouvez dessiner en caractères ce que vous voulez faire apparaître. Est-ce ->?
Rick Henderson
4
@RickHenderson Ce n'est pas vrai, un caractère de tabulation n'est pas seulement un certain nombre d'espaces. Peut-être que votre éditeur est configuré pour insérer des espaces en appuyant sur la tabulation. "" est un onglet "" est un espace. Vous ne voyez peut-être pas la différence ici, mais ouvrez Word / Libre et vous verrez la différence.
Sativa
27
Le manuel de référence Python comprend plusieurs littéraux de chaîne qui peuvent être utilisés dans une chaîne. Ces séquences spéciales de caractères sont remplacées par la signification voulue de la séquence d'échappement.
Voici un tableau de certaines des séquences d'échappement les plus utiles et une description de leur sortie.
EscapeSequenceMeaning
\t Tab
\\ Inserts a back slash (\)
\' Inserts a single quote (')
\" Inserts a double quote (")
\n Inserts a ASCII Linefeed (a new line)
Exemple de base
Si je voulais imprimer des points de données séparés par un espace de tabulation, je pourrais imprimer cette chaîne.
DataString="0\t12\t24"print(DataString)
Retour
01224
Exemple de listes
Voici un autre exemple où nous imprimons les éléments de la liste et nous voulons séparer les éléments par une tabulation.
Notez que les chaînes brutes (une chaîne qui inclut un préfixe "r"), les chaînes littérales seront ignorées. Cela permet à ces séquences spéciales de caractères d'être incluses dans des chaînes sans être modifiées.
DataString= r"0\t12\t24"print(DataString)
Retour
0\t12\t24
Ce qui peut être une sortie indésirable
Longueurs de chaîne
Il convient également de noter que les littéraux de chaîne ne comportent qu'un seul caractère.
Comme cela n'a été mentionné dans aucune réponse, juste au cas où vous voudriez aligner et espacer votre texte, vous pouvez utiliser les fonctionnalités de format de chaîne. (ci-dessus python 2.5) Il \ts'agit bien sûr d' un jeton TAB alors que la méthode décrite génère des espaces.
comment donner un caractère de tabulation pour imprimer un élément de tableau en 3 dimensions comme 0 12 24 comme 3 lignes?
priya raj
Ajouté à la réponse
user1767754
0
Voici quelques moyens plus exotiques de Python 3 pour obtenir "hello" TAB "alex" (testé avec Python 3.6.10):
"hello\N{TAB}alex"
"hello\N{tab}alex"
"hello\N{TaB}alex"
"hello\N{HT}alex"
"hello\N{CHARACTER TABULATION}alex"
"hello\N{HORIZONTAL TABULATION}alex"
"hello\x09alex"
"hello\u0009alex"
"hello\U00000009alex"
En fait, au lieu d'utiliser une séquence d'échappement, il est possible d'insérer un symbole de tabulation directement dans la chaîne littérale. Voici le code avec un caractère de tabulation à copier et à essayer:
"hello alex"
Si l'onglet dans la chaîne ci-dessus ne sera perdu nulle part pendant la copie de la chaîne, alors "print (repr (<string from above>)" devrait afficher 'hello \ talex'.
Réponses:
Voici le code:
L'
\t
intérieur de la chaîne est la séquence d'échappement pour la tabulation horizontale.la source
print "a\tb"
me donnea (8 spaces)b
dans lecmd
surWindows
. Pourquoi imprime-t-il 8 espaces au lieu du caractère de tabulation.a (tab character)b
Le manuel de référence Python comprend plusieurs littéraux de chaîne qui peuvent être utilisés dans une chaîne. Ces séquences spéciales de caractères sont remplacées par la signification voulue de la séquence d'échappement.
Voici un tableau de certaines des séquences d'échappement les plus utiles et une description de leur sortie.
Exemple de base
Si je voulais imprimer des points de données séparés par un espace de tabulation, je pourrais imprimer cette chaîne.
Retour
Exemple de listes
Voici un autre exemple où nous imprimons les éléments de la liste et nous voulons séparer les éléments par une tabulation.
Retour
Chaînes brutes
Notez que les chaînes brutes (une chaîne qui inclut un préfixe "r"), les chaînes littérales seront ignorées. Cela permet à ces séquences spéciales de caractères d'être incluses dans des chaînes sans être modifiées.
Retour
Ce qui peut être une sortie indésirable
Longueurs de chaîne
Il convient également de noter que les littéraux de chaîne ne comportent qu'un seul caractère.
Retour
La chaîne brute a une longueur de 9.
la source
\t
. Comment puis-je faire ceci?Vous pouvez utiliser \ t dans une chaîne littérale:
"hello\talex"
la source
C'est généralement
\t
dans les interfaces de ligne de commande, qui convertissent le\t
caractère en caractère de tabulation d'espaces.Par exemple,
hello\talex
->hello--->alex
.la source
Comme cela n'a été mentionné dans aucune réponse, juste au cas où vous voudriez aligner et espacer votre texte, vous pouvez utiliser les fonctionnalités de format de chaîne. (ci-dessus python 2.5) Il
\t
s'agit bien sûr d' un jeton TAB alors que la méthode décrite génère des espaces.Exemple:
Un autre exemple, aligné à gauche:
la source
Voici quelques moyens plus exotiques de Python 3 pour obtenir "hello" TAB "alex" (testé avec Python 3.6.10):
"hello\N{TAB}alex"
"hello\N{tab}alex"
"hello\N{TaB}alex"
"hello\N{HT}alex"
"hello\N{CHARACTER TABULATION}alex"
"hello\N{HORIZONTAL TABULATION}alex"
"hello\x09alex"
"hello\u0009alex"
"hello\U00000009alex"
En fait, au lieu d'utiliser une séquence d'échappement, il est possible d'insérer un symbole de tabulation directement dans la chaîne littérale. Voici le code avec un caractère de tabulation à copier et à essayer:
"hello alex"
Si l'onglet dans la chaîne ci-dessus ne sera perdu nulle part pendant la copie de la chaîne, alors "print (repr (<string from above>)" devrait afficher 'hello \ talex'.
Voir la documentation Python respective pour référence.
la source