编程语言
首页 > 编程语言> > python-如何用字符串中的空格替换自定义选项卡,具体取决于选项卡的大小?

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