expandtabs()方法返回一個(gè)字符串副本,其中所有制表符'\ t'都用空格字符替換,直到tabsize參數(shù)的下一個(gè)倍數(shù)為止。
expandtabs()方法的語(yǔ)法為:
string.expandtabs(tabsize)
expandtabs()采用整數(shù)tabsize參數(shù)。預(yù)設(shè)tabsize值為8。
expandtabs()返回一個(gè)字符串,其中所有'\ t'字符均替換為空格字符,直到tabsize參數(shù)的下一個(gè)倍數(shù)為止。
str = 'xyz\t12345\tabc' # 沒(méi)有傳遞參數(shù) # 默認(rèn)tabsize是8 result = str.expandtabs() print(result)
運(yùn)行該程序時(shí),輸出為:
xyz 12345 abc
expandtabs()方法跟蹤當(dāng)前光標(biāo)位置。
在上面的程序中第一個(gè)'\ t'字符的位置是3。并且,該位置tabsize是8(如果未傳遞參數(shù))。
expandtabs()字符用空格替換'\ t',直到下一個(gè)制表符停止。“ \ t”的位置為3,第一個(gè)制表位為8。因此,“ xyz”后的空格數(shù)為5。
下一個(gè)制表位是的倍數(shù)tabsize。下一個(gè)制表位是16、24、32,依此類(lèi)推。
現(xiàn)在,第二個(gè)'\ t'字符的位置是13。并且,下一個(gè)制表位是16。因此,在'12345'之后有3個(gè)空格。
str = "xyz\t12345\tabc" print('原始字符串:', str) # tabsize設(shè)置為2 print('Tabsize 2:', str.expandtabs(2)) # tabsize設(shè)置為3 print('Tabsize 3:', str.expandtabs(3)) # tabsize設(shè)置為4 print('Tabsize 4:', str.expandtabs(4)) # tabsize設(shè)置為5 print('Tabsize 5:', str.expandtabs(5)) # tabsize設(shè)置為6 print('Tabsize 6:', str.expandtabs(6))
運(yùn)行該程序時(shí),輸出為:
原始字符串: 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
默認(rèn)tabsize值為8。制表位為8、16,依此類(lèi)推。因此,當(dāng)您打印原始字符串時(shí),“ xyz”后面有5個(gè)空格,“ 12345”后面有3個(gè)空格。
將設(shè)置tabsize為2時(shí)。制表位為2、4、6、8,依此類(lèi)推。對(duì)于“ xyz”,制表位是4,對(duì)于“ 12345”,制表位是10。因此,在“ xyz”后有1個(gè)空格,在“ 12345”后有1個(gè)空格。
將設(shè)置tabsize為3時(shí)。制表位為3、6、9,依此類(lèi)推。對(duì)于“ xyz”,制表位是6,對(duì)于“ 12345”,制表位是12。因此,“ xyz”后有3個(gè)空格,在“ 12345”后有1個(gè)空格。
將設(shè)置tabsize為4時(shí)。制表位為4、8、12,依此類(lèi)推。對(duì)于“ xyz”,制表位是4,對(duì)于“ 12345”,制表位是12。因此,在“ xyz”后有1個(gè)空格,在“ 12345”后有3個(gè)空格。
設(shè)置tabsize為5時(shí)。制表位為5、10、15,依此類(lèi)推。對(duì)于“ xyz”,制表位是5,對(duì)于“ 12345”,制表位是15。因此,在“ xyz”后有2個(gè)空格,在“ 12345”后有5個(gè)空格。
設(shè)置tabsize為6時(shí)。制表位為6、12、18,依此類(lèi)推。對(duì)于“ xyz”,制表位是6,對(duì)于“ 12345”,制表位是12。因此,在“ xyz”后有3個(gè)空格,在“ 12345”后有1個(gè)空格。