Ответы:
Это код:
f = open(filename, 'w')
f.write("hello\talex")
\t
Внутри строки является последовательность символов для горизонтальной табуляции.
print "a\tb"
дает мне a (8 spaces)b
в положение cmd
ON Windows
. Почему вместо символа табуляции печатается 8 пробелов.
a (tab character)b
Справочное руководство Python включает несколько строковых литералов, которые можно использовать в строке. Эти специальные последовательности символов заменяются предполагаемым значением escape-последовательности.
Вот таблица некоторых наиболее полезных escape-последовательностей и описание их вывода.
Escape Sequence Meaning
\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)
Возвращает
0 12 24
Пример списков
Вот еще один пример, когда мы печатаем элементы списка и хотим распределить их по TAB.
DataPoints = [0,12,24]
print (str(DataPoints[0]) + "\t" + str(DataPoints[1]) + "\t" + str(DataPoints[2]))
Возвращает
0 12 24
Необработанные струны
Обратите внимание, что необработанные строки (строка, содержащая префикс «r»), строковые литералы будут игнорироваться. Это позволяет включать эти специальные последовательности символов в строки без изменения.
DataString = r"0\t12\t24"
print (DataString)
Возвращает
0\t12\t24
Что может быть нежелательным результатом
Длина строки
Также следует отметить, что строковые литералы имеют длину всего один символ.
DataString = "0\t12\t24"
print (len(DataString))
Возвращает
7
Необработанная строка имеет длину 9.
\t
. Как я могу это сделать?
Поскольку об этом не упоминалось ни в одном ответе, на всякий случай, если вы хотите выровнять и разместить свой текст, вы можете использовать функции строкового формата. (выше Python 2.5) Конечно, \t
это токен TAB, тогда как описанный метод генерирует пробелы.
Пример:
print "{0:30} {1}".format("hi", "yes")
> hi yes
Другой пример с выравниванием по левому краю:
print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0 2.2 4.4
Вот еще несколько экзотических способов 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 для справки.