The syntax of expandtabs()
method is:
string.expandtabs(tabsize)
expandtabs() Parameters
The expandtabs()
takes an integer tabsize argument. The default tabsize is 8.
Return Value from expandtabs()
The expandtabs()
returns a string where all '\t' characters are replaced with whitespace characters until the next multiple of tabsize
parameter.
Example 1: expandtabs() With no Argument
str = 'xyz\t12345\tabc'
# no argument is passed
# default tabsize is 8
result = str.expandtabs()
print(result)
Output
xyz 12345 abc
How expandtabs() works in Python?
The expandtabs()
method keeps track of the current cursor position.
The position of first '\t' character in the above program is 3. And, the tabsize is 8 (if argument is not passed).
The expandtabs()
character replaces the '\t' with whitespace until the next tab stop. The position of '\t' is 3 and the first tab stop is 8. Hence, the number of spaces after 'xyz' is 5.
The next tab stops are the multiples of tabsize. The next tab stops are 16, 24, 32 and so on.
Now, the position of second '\t' character is 13. And, the next tab stop is 16. Hence, there are 3 spaces after '12345'.
Example 2: expandtabs() With Different Argument
str = "xyz\t12345\tabc"
print('Original String:', str)
# tabsize is set to 2
print('Tabsize 2:', str.expandtabs(2))
# tabsize is set to 3
print('Tabsize 3:', str.expandtabs(3))
# tabsize is set to 4
print('Tabsize 4:', str.expandtabs(4))
# tabsize is set to 5
print('Tabsize 5:', str.expandtabs(5))
# tabsize is set to 6
print('Tabsize 6:', str.expandtabs(6))
Output
Original String: xyz 12345 abc Tabsize 2: xyz 12345 abc Tabsize 3: xyz 12345 abc Tabsize 4: xyz 12345 abc Tabsize 5: xyz 12345 abc Tabsize 6: xyz 12345 abc
Explanation
- The default tabsize is 8. The tab stops are 8, 16 and so on. Hence, there is 5 spaces after 'xyz' and 3 after '12345' when you print the original string.
- When you set the tabsize to 2. The tab stops are 2, 4, 6, 8 and so on. For 'xyz', the tab stop is 4, and for '12345', the tab stop is 10. Hence, there is 1 space after 'xyz' and 1 space after '12345'.
- When you set the tabsize to 3. The tab stops are 3, 6, 9 and so on. For 'xyz', the tab stop is 6, and for '12345', the tab stop is 12. Hence, there are 3 spaces after 'xyz' and 1 space after '12345'.
- When you set the tabsize to 4. The tab stops are 4, 8, 12 and so on. For 'xyz', the tab stop is 4 and for '12345', the tab stop is 12. Hence, there is 1 space after 'xyz' and 3 spaces after '12345'.
- When you set the tabsize to 5. The tab stops are 5, 10, 15 and so on. For 'xyz', the tab stop is 5 and for '12345', the tab stop is 15. Hence, there are 2 spaces after 'xyz' and 5 spaces after '12345'.
- When you set the tabsize to 6. The tab stops are 6, 12, 18 and so on. For 'xyz', the tab stop is 6 and for '12345', the tab stop is 12. Hence, there are 3 spaces after 'xyz' and 1 space after '12345'.
Also Read: