Uczę się o Pythonie i dostaję się do polecenia expandtabs
w Pythonie. To jest oficjalna definicja w docs:Python expandtabs Operacja na ciągi znaków
string.expandtabs(s[, tabsize])
Rozwiń zaczepy w łańcuchu zastąpienie ich przez jedną lub więcej pomieszczeń, w zależności od bieżącej kolumny i danej wielkości karty. Numer kolumny jest resetowany do zera po każdej nowej linii występującej w ciągu znaków. Nie rozumie to innych niedrukowalnych znaków ani sekwencji unikowych. Domyślne wielkości zakładka do 8.
Więc co zrozumiałem z tego jest to, że domyślny rozmiar klapek jest 8 i zwiększenia, które możemy używać innych wartości
Więc, gdy próbowałem, że w shell, próbowałem następujące wejścia -
>>> str = "this is\tstring"
>>> print str.expandtabs(0)
this isstring
>>> print str.expandtabs(1)
this is string
>>> print str.expandtabs(2)
this is string
>>> print str.expandtabs(3)
this is string
>>> print str.expandtabs(4)
this is string
>>> print str.expandtabs(5)
this is string
>>> print str.expandtabs(6)
this is string
>>> print str.expandtabs(7)
this is string
>>> print str.expandtabs(8)
this is string
>>> print str.expandtabs(9)
this is string
>>> print str.expandtabs(10)
this is string
>>> print str.expandtabs(11)
this is string
Więc tutaj
0
usuwa znak tabulatora całkowicie1
jest dokładnie tak jak domyślnie8
,- ale
2
jest dokładnie jak1
a następnie 3
różni- a następnie ponownie
4
jest jak używanie1
i po to, że zwiększa do 8
, który jest domyślny, a następnie wzrasta po 8. Ale dlaczego dziwny wzór w liczbach od 0 do 8? Wiem, że ma zaczynać się od 8, ale jaki jest powód?
Zobacz także [to pytanie] (http://stackoverflow.com/questions/2656997/python-expand-tabs-length-calculation) związane z twoim wyjaśnieniem. – Jens
Czy mógłbyś wyjaśnić to w prostszy sposób? Nie rozumiem, jak to by zmieniło wynik w przypadkach, które dodałem w pytaniu. – WutWut
@WutWut: Być może przyjrzyj się, co to jest [tab stop] (https://en.wikipedia.org/wiki/Tab_stop), a to powinno pomóc ci zrozumieć, jak działa "tabulator" (tabulator). – Jens