ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-10-10 13:56:23  阅读:238  来源: 互联网

标签:spaces tabstop python whitespace


我正在尝试编写一个不使用任何模块的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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有