Python Expand Tabs Length Calculation(Python展开标签长度计算)
问题描述
我对使用 expandtabs 时如何计算字符串的长度感到困惑.我认为 expandtabs 用适当数量的空格替换制表符(每个制表符的默认空格数为 8).但是,当我使用不同长度和不同数量的制表符的字符串运行命令时,长度计算与我想象的不同(即,每个制表符并不总是导致每个实例的字符串长度增加 8的/t").
I'm confused by how the length of a string is calculated when expandtabs is used. I thought expandtabs replaces tabs with the appropriate number of spaces (with the default number of spaces per tab being 8). However, when I ran the commands using strings of varying lengths and varying numbers of tabs, the length calculation was different than I thought it would be (i.e., each tab didn't always result in the string length being increased by 8 for each instance of "/t").
下面是一个详细的脚本输出,其中包含解释我认为应该是上面执行的命令的结果的注释.有人能解释一下使用展开标签时如何计算长度吗?
Below is a detailed script output with comments explaining what I thought should be the result of the command executed above. Would someone please explain the how the length is calculated when expand tabs is used?
IDLE 2.6.5
>>> s = ' '
>>> print len(s)
1
>>> #the length of the string without expandtabs was one (1 tab counted as a single space), as expected.
>>> print len(s.expandtabs())
8
>>> #the length of the string with expandtabs was eight (1 tab counted as eight spaces).
>>> s = ' '
>>> print len(s)
2
>>> #the length of the string without expandtabs was 2 (2 tabs, each counted as a single space).
>>> print len(s.expandtabs())
16
>>> #the length of the string with expandtabs was 16 (2 tabs counted as 8 spaces each).
>>> s = 'abc abc'
>>> print len(s)
7
>>> #the length of the string without expandtabs was seven (6 characters and 1 tab counted as a single space).
>>> print len(s.expandtabs())
11
>>> #the length of the string with expandtabs was NOT 14 (6 characters and one 8 space tabs).
>>> s = 'abc abc abc'
>>> print len(s)
11
>>> #the length of the string without expandtabs was 11 (9 characters and 2 tabs counted as a single space).
>>> print len(s.expandtabs())
19
>>> #the length of the string with expandtabs was NOT 25 (9 characters and two 8 space tabs).
>>>
推荐答案
就像在文本编辑器中输入制表符一样,制表符将长度增加到下一个 8 的倍数.
Like when you are entering tabs in a text-editor, the tab character increases the length to the next multiple of 8.
所以:
' '
本身显然是 8.' '
是 16.'abc abc'
从 3 个字符开始,然后一个制表符将其推送到 8 个字符,然后最后一个'abc'
将其从 8 个字符推送到 11 个字符...'abc abc abc'
同样从 3 开始,tab 将它推到 8,另一个'abc'
到 11,然后另一个 tab 将它推到 16,最后的'abc'
使长度达到 19.
' '
by itself is 8, obviously.' '
is 16.'abc abc'
starts at 3 characters, then a tab pushes it up to 8, and then the last'abc'
pushes it from 8 to 11...'abc abc abc'
likewise starts at 3, tab bumps it to 8, another'abc'
goes to 11, then another tab pushes it to 16, and the final'abc'
brings the length to 19.
这篇关于Python展开标签长度计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Python展开标签长度计算


基础教程推荐
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01
- 修改列表中的数据帧不起作用 2022-01-01
- 包装空间模型 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- 求两个直方图的卷积 2022-01-01