Odpowiedzi:
To jest kod:
f = open(filename, 'w')
f.write("hello\talex")
\t
Wewnątrz łańcucha jest sekwencja ucieczki dla poziomego zestawianiu.
print "a\tb"
daje mi a (8 spaces)b
możliwość cmd
włączenia Windows
. Dlaczego wypisuje 8 spacji zamiast znaku tabulacji.
a (tab character)b
Podręcznik referencyjny języka Python zawiera kilka literałów łańcuchowych, których można użyć w łańcuchu. Te specjalne sekwencje znaków są zastępowane zamierzonym znaczeniem sekwencji sterującej.
Oto tabela niektórych bardziej użytecznych sekwencji ucieczki i opis ich wyników.
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)
Podstawowy przykład
Gdybym chciał wydrukować niektóre punkty danych oddzielone spacją tabulatora, mógłbym wydrukować ten ciąg.
DataString = "0\t12\t24"
print (DataString)
Zwroty
0 12 24
Przykład list
Oto kolejny przykład, w którym drukujemy pozycje listy i chcemy podzielić pozycje za pomocą TAB.
DataPoints = [0,12,24]
print (str(DataPoints[0]) + "\t" + str(DataPoints[1]) + "\t" + str(DataPoints[2]))
Zwroty
0 12 24
Surowe ciągi
Zwróć uwagę, że nieprzetworzone łańcuchy (ciąg zawierający przedrostek „r”), literały łańcuchowe będą ignorowane. Pozwala to na umieszczanie tych specjalnych sekwencji znaków w łańcuchach bez ich zmiany.
DataString = r"0\t12\t24"
print (DataString)
Zwroty
0\t12\t24
Co może być niepożądanym wyjściem
Długości strun
Należy również zauważyć, że literały łańcuchowe mają tylko jeden znak długości.
DataString = "0\t12\t24"
print (len(DataString))
Zwroty
7
Surowy sznurek ma długość 9.
\t
. W jaki sposób mogę to zrobić?
Ponieważ nie wspomniano o tym w żadnych odpowiedziach, na wypadek, gdybyś chciał wyrównać i rozmieścić tekst, możesz użyć funkcji formatu ciągu. (powyżej pythona 2.5) Oczywiście \t
faktycznie jest to token TAB, podczas gdy opisana metoda generuje spacje.
Przykład:
print "{0:30} {1}".format("hi", "yes")
> hi yes
Inny przykład wyrównany do lewej:
print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0 2.2 4.4
Oto kilka bardziej egzotycznych sposobów w Pythonie 3 na uzyskanie „hello” TAB „alex” (testowane z Pythonem 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"
Właściwie, zamiast używać sekwencji ucieczki, można wstawić symbol tabulatora bezpośrednio do literału ciągu. Oto kod ze znakiem tabulacji do skopiowania i wypróbowania:
"hello alex"
Jeśli tabulator w powyższym ciągu nie zostanie utracony podczas kopiowania ciągu, wówczas polecenie „print (repr (<ciąg z góry>)” powinno wypisać „hello \ talex”.
Widzieć odpowiednią dokumentację Pythona w celu uzyskania informacji.