为了账号安全,请及时绑定邮箱和手机立即绑定

我怎么能不计算我的字符串之间的空格

我怎么能不计算我的字符串之间的空格

跃然一笑 2021-12-08 16:24:29
所以我有,pe,这个字符串:'我爱python',我想将所有空格转换为'_'。我的问题是我还需要删除外部空间,所以我没有完成结果:'_I_love_python__' 和更像这样的 'I_love_python' 我搜索并发现我可以用一行代码开发它,mystring.strip().replace(" ", "_")不幸的是我不能在我的论文中应用的语法。所以我得到的是这个:frase= str(input('Introduza: '))aux=''for car in frase:    if car==' ':        car='_'        aux+=car    else:        aux+=carprint(aux)我现在的问题是删除那些外部空间。我想到的是在开始时为 i 运行另一个,在字符串的最后运行另一个,然后停止直到他们找到一个非空格字符。但不幸的是,我还没有能够做到这一点......感谢您提供的所有帮助!
查看完整描述

3 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

我想出了以下解决方案:


您遍历字符串,但不是在出现下划线时立即用下划线替换空格,而是存储遇到的空格数。然后,一旦达到非空格字符,就将找到的空格数量添加到字符串中。因此,如果字符串以大量空格结尾,它将永远不会到达非空格字符,因此永远不会添加下划线。


为了在开头截掉空格,我只是添加了一个条件来添加下划线:“我以前遇到过非空格字符吗?”


这是代码:


text = "   I love   python    e  "


out = ""


string_started = False

underscores_to_add = 0

for c in text:

    if c == " ":

        underscores_to_add += 1

    else:

        if string_started:

            out += "_" * underscores_to_add

        underscores_to_add = 0

        string_started = True

        out += c


print(out)  # prints "I_love___python____e"


查看完整回答
反对 回复 2021-12-08
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您可以使用以下技巧删除字符串中的前导和尾随空格:


s = ' I love python   '


ind1 = min(len(s) if c == ' ' else n for n, c in enumerate(s))

ind2 = max(0 if c == ' ' else n for n, c in enumerate(s))


s = ''.join('_' if c == ' ' else c for c in s[ind1:ind2 + 1])


print('*', s, '*', sep='')

输出:


*I_love_python*


查看完整回答
反对 回复 2021-12-08
?
白衣非少年

TA贡献1155条经验 获得超0个赞

如果不允许使用 strip() 方法

def find(text):

    for i, s in enumerate(text):

        if s !=  " ":

            break

    return i


text = "   I love   python    e  "

text[find(text):len(text)-find(text[::-1])].replace(" ","_")


texts = ["   I love   python    e  ","I love   python    e"," I love   python    e","I love   python    e ", "I love   python    e"]

for text in texts:

    print (text[find(text):len(text)-find(text[::-1])].replace(" ","_"))

输出:



I_love___python____e

I_love___python____e

I_love___python____e

I_love___python____e

I_love___python____e

  • 给定一个字符串find会找到字符串中的第一个非空格字符

  • 使用find查找第一个非空格字符和最后一个非空格字符

  • 使用上面找到的索引获取子字符串

  • 用 _ 替换上面子字符串中的所有空格


查看完整回答
反对 回复 2021-12-08
  • 3 回答
  • 0 关注
  • 255 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信