|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
expandtabs后面不添加说明的话是默认空格长度为8个字符串,小甲鱼老师上课讲的那个例子'i\tlove\tfish'使用这个方法后输出'i love fish',i后面有7个空格,love后面有4个空格,因为这8个字符除了空格还要包括反斜杠前面的字符。
那么下面这个,str2 = 'i\tlove\tfish',str2.expandtabs(2),这个会输出什么,第一个i后面会有一个空格我能理解,但是第二个反斜杠前面的love本身就已经有四个字符了,按说应该要报错的吧,但是我在尝试的时候反而输出了一个结果,请大神们帮我解答一下这个问题
本帖最后由 dlnb526 于 2020-2-17 19:04 编辑
下面的答案是错误的!!!
我的正确解答参见expandtabs()方法的探究
https://fishc.com.cn/thread-156862-1-1.html
(出处: 鱼C论坛)
expandtabs源代码如下
- def expandtabs(string, n):
- result = ""
- pos = 0
- for char in string:
- if char == "\t":
- # instead of the tab character, append the
- # number of spaces to the next tab stop
- char = " " * (n - pos % n)
- if char == "\n":
- pos = 0
- else:
- pos += len(char)
- result += char
- return result
复制代码
而
上述对一个空格乘以-1输出一个空字符串
所以如果位置数比给定的小,把换行符弄成了空字符串而已~
小甲鱼课上好像讲了如果字母数比那个数大,就会忽略expandtabs
希望能帮到你
|
|