Jak napisać „kartę” w Pythonie?

127

Powiedzmy, że mam plik. Jak napisać „cześć” TAB „alex”?

TIMEX
źródło
6
tab oznacza '\ t'
Pratik

Odpowiedzi:

154

To jest kod:

f = open(filename, 'w')
f.write("hello\talex")

\tWewnątrz łańcucha jest sekwencja ucieczki dla poziomego zestawianiu.

Simone
źródło
5
Używanie print "a\tb"daje mi a (8 spaces)bmożliwość cmdwłączenia Windows. Dlaczego wypisuje 8 spacji zamiast znaku tabulacji.
Iulian Onofrei
Czego jeszcze się spodziewałeś?
Simone
8
Do wyświetleniaa (tab character)b
Iulian Onofrei
@IulianOnofrei Znak tabulacji to znak niedrukowalny, nazywany również białą spacją. Po naciśnięciu klawisza Tab nic nie widać. Po prostu przesuwa tekst o domyślną liczbę spacji. Może potrafisz narysować postacie to, co chcesz pokazać. Czy to ->?
Rick Henderson
4
@RickHenderson To nieprawda, znak tabulacji to nie tylko liczba spacji. Może Twój Edytor jest skonfigurowany do wstawiania spacji po naciśnięciu klawisza tab. „” to tabulator „” to spacja. Możesz nie widzieć różnicy tutaj, ale otwórz Word / Libre, a zobaczysz różnicę.
Sativa
27

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.

CodeCupboard
źródło
Potrzebuję odstępu między elementami wynoszącego około połowy \t. W jaki sposób mogę to zrobić?
seralouk
25

Możesz użyć \ t w literale ciągu:

"hello\talex"

Knio
źródło
14

Zwykle jest to \tinterfejs wiersza poleceń, który przekształci znak\t w biały znak tabulacji.

Na przykład hello\talex-> hello--->alex.

Darbio
źródło
9

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 \tfaktycznie 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 
user1767754
źródło
jak nadać znak tabulacji, aby wydrukować trójwymiarowy element tablicy jako 0 12 24 jako 3 wiersze?
priya raj
Dodano do odpowiedzi
user1767754
0

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.

user2273896
źródło