python-如何用字符串中的空格替换自定义选项卡,具体取决于选项卡的大小?
作者:互联网
我正在尝试编写一个不使用任何模块的python函数,该模块将使用具有制表符的字符串,并用适合于输入的制表符大小的空格替换制表符.但是,它不能仅将所有大小为n的制表符替换为n个空格,因为制表符可能是1到n个空格.我真的很困惑,所以如果有人能指出我正确的方向,我将不胜感激.
例如,
如果tabstop最初是4号尺寸:
123\t123 = 123 123 #one space in between
但更改为Tabstop 5:
123\t123 = 123 123 #two spaces in between
我想我需要在字符串的末尾用空格填充,直到string%n == 0,然后将其分块,但此刻我迷路了.
解决方法:
由于您不希望使用不使用任何外部模块的python函数,因此我认为您应该首先设计函数的算法…
我建议对字符串的每个字符进行迭代;如果char i是一个制表符,则需要计算要插入多少空格:下一个“对齐”索引是((i / tabstop)1)* tabstop.因此,您需要插入((i / tabstop)1)* tabstop-(i%tabstop).但是更简单的方法是插入制表符直到您对齐为止(即i%tabstop == 0)
def replace_tab(s, tabstop = 4):
result = str()
for c in s:
if c == '\t':
while (len(result) % tabstop != 0):
result += ' ';
else:
result += c
return result
标签:spaces,tabstop,python,whitespace 来源: https://codeday.me/bug/20191010/1887093.html