|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
先说几个在论坛里面看到的
比如dlnb526 老哥讲解的
>>>str1 = 'i\tam\thapp1232y\thahaahha'
>>>str1.expandtabs(5)
'i am happ1232y hahaahha'
这段代码中\t的转换方法是因为\t前面的字符数是9,而给定参数为5,所以按dlnb526老哥的解释是因为python的内置机制当参数小于前面字符数时默认按倍数来,即5*2-9,happ1232y后面空一格,而给定参数
大于字符数时,比如
>>>str1 = 'i\tam\thappy'
>>> str1.expandtabs(5)
'i am happy'
给出的解释i后面的\t转换的字符数5-1=4,m后面的\t为5-2=3
上述两例似乎能够完美解答疑惑,但是在我多次测试后又发现问题了,比如下面的程序
>>> str1='i want goto\tschool'
>>> str1.expandtabs()
'i want goto school'
goto后面的空格数是5,怎么数都是5,按照前面的方法8-4=4才对呀,但是这里偏偏是5,完全懵圈了。。。。。。。
可能是我点子背吧,又连着试了好几个,比如下面的
>>> str1='i want gotothe\tschool'
>>> str1.expandtabs(3)
'i want gotothe school'
>>> str1.expandtabs(8)
'i want gotothe school'
>>> str1.expandtabs(16)
'i want gotothe school'
>>> str1.expandtabs(28)
'i want gotothe school'
>>> str1.expandtabs(32)
'i want gotothe school'
参数3的时候the后面1个空格,参数8的时候2个空格,参数28的时候14个空格,参数32的时候18个空格,彻底懵圈了。。。。。。。。
有没有人能帮忙看看,是不是我理解出了问题,为什么会出现这样的情况?叩谢!!!!!!!
'i want goto' 的长度是 11,默认不指定参数是 expandtabs(8),添加 5 个空格就能凑成 16 个字符(8 的倍数)。其他的同理
|
|