Использование print "a\tb"дает мне a (8 spaces)bв положение cmdON Windows. Почему вместо символа табуляции печатается 8 пробелов.
Юлиан Онофрей
Чего еще вы ожидали?
Simone
8
Показатьa (tab character)b
Юлиан Онофрей
@IulianOnofrei Символ табуляции - это непечатаемый символ, также известный как пробел. Вы ничего не видите, когда нажимаете клавишу Tab. Он просто перемещает текст на количество пробелов по умолчанию. Может быть, вы сможете нарисовать персонажей тем, чем хотите. Это ->?
Рик Хендерсон
4
@RickHenderson Это неправда, символ табуляции - это не просто количество пробелов. Возможно, ваш редактор настроен на вставку пробелов при нажатии табуляции. "" - это табуляция "" - это пробел. Вы можете не увидеть здесь разницы, но откройте Word / Libre, и вы увидите разницу.
Sativa
27
Справочное руководство Python включает несколько строковых литералов, которые можно использовать в строке. Эти специальные последовательности символов заменяются предполагаемым значением escape-последовательности.
Вот таблица некоторых наиболее полезных escape-последовательностей и описание их вывода.
EscapeSequenceMeaning
\t Tab
\\ Inserts a back slash (\)
\' Inserts a single quote (')
\" Inserts a double quote (")
\n Inserts a ASCII Linefeed (a new line)
Базовый пример
Если бы я хотел напечатать некоторые точки данных, разделенные пробелом, я мог бы распечатать эту строку.
DataString="0\t12\t24"print(DataString)
Возвращает
01224
Пример списков
Вот еще один пример, когда мы печатаем элементы списка и хотим распределить их по TAB.
Обратите внимание, что необработанные строки (строка, содержащая префикс «r»), строковые литералы будут игнорироваться. Это позволяет включать эти специальные последовательности символов в строки без изменения.
DataString= r"0\t12\t24"print(DataString)
Возвращает
0\t12\t24
Что может быть нежелательным результатом
Длина строки
Также следует отметить, что строковые литералы имеют длину всего один символ.
Поскольку об этом не упоминалось ни в одном ответе, на всякий случай, если вы хотите выровнять и разместить свой текст, вы можете использовать функции строкового формата. (выше Python 2.5) Конечно, \tэто токен TAB, тогда как описанный метод генерирует пробелы.
как дать символ табуляции для печати элемента трехмерного массива как 0 12 24 как 3 строки?
прия радж
Добавлен в ответ
user1767754
0
Вот еще несколько экзотических способов Python 3 получить "привет" TAB "alex" (проверено с 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"
Фактически, вместо использования escape-последовательности можно вставить символ табуляции непосредственно в строковый литерал. Вот код с символом табуляции, который нужно скопировать и попробовать:
"hello alex"
Если табуляция в приведенной выше строке нигде не будет потеряна во время копирования строки, тогда "print (repr (<строка сверху>)" должна напечатать 'hello \ talex'.
Ответы:
Это код:
\t
Внутри строки является последовательность символов для горизонтальной табуляции.источник
print "a\tb"
дает мнеa (8 spaces)b
в положениеcmd
ONWindows
. Почему вместо символа табуляции печатается 8 пробелов.a (tab character)b
Справочное руководство Python включает несколько строковых литералов, которые можно использовать в строке. Эти специальные последовательности символов заменяются предполагаемым значением escape-последовательности.
Вот таблица некоторых наиболее полезных escape-последовательностей и описание их вывода.
Базовый пример
Если бы я хотел напечатать некоторые точки данных, разделенные пробелом, я мог бы распечатать эту строку.
Возвращает
Пример списков
Вот еще один пример, когда мы печатаем элементы списка и хотим распределить их по TAB.
Возвращает
Необработанные струны
Обратите внимание, что необработанные строки (строка, содержащая префикс «r»), строковые литералы будут игнорироваться. Это позволяет включать эти специальные последовательности символов в строки без изменения.
Возвращает
Что может быть нежелательным результатом
Длина строки
Также следует отметить, что строковые литералы имеют длину всего один символ.
Возвращает
Необработанная строка имеет длину 9.
источник
\t
. Как я могу это сделать?Вы можете использовать \ t в строковом литерале:
"hello\talex"
источник
Обычно это используется
\t
в интерфейсах командной строки, которые преобразуют символ\t
в символ табуляции с пробелом.Например,
hello\talex
->hello--->alex
.источник
Поскольку об этом не упоминалось ни в одном ответе, на всякий случай, если вы хотите выровнять и разместить свой текст, вы можете использовать функции строкового формата. (выше Python 2.5) Конечно,
\t
это токен TAB, тогда как описанный метод генерирует пробелы.Пример:
Другой пример с выравниванием по левому краю:
источник
Вот еще несколько экзотических способов Python 3 получить "привет" TAB "alex" (проверено с 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"
Фактически, вместо использования escape-последовательности можно вставить символ табуляции непосредственно в строковый литерал. Вот код с символом табуляции, который нужно скопировать и попробовать:
"hello alex"
Если табуляция в приведенной выше строке нигде не будет потеряна во время копирования строки, тогда "print (repr (<строка сверху>)" должна напечатать 'hello \ talex'.
См. Соответствующую документацию Python для справки.
источник