我试着抓取字符串中的字母,并用一个空空格替换它们,在这种情况下,空空格用“u”表示,每个下划线之间有一个空格。
这是我的代码:
word = "my example"
def convert_letter(word):
for i in range(0, len(word)):
if ord(word[i]) != 32:
word.replace(word[i], '_')
print(word)
convert_letter(word)
当我运行代码时,它只返回单词或字符串,我不知道为什么。
以防您想知道if语句的目的是不将空格转换为“\u”。
所以在这个函数中,我期望如下:
_ _ _ _ _ _ _ _ _
如果你想走regex路线:
根据具体要替换的内容,可能需要更改regex。
\w
例如包括数字,因此您可能需要[A-Za-z]
。注意,和
str.replace()
一样,它也不会修改原始文件。代码中的问题是
str.replace
没有就地修改字符串,而是返回一个完成替换的副本。如果要替换原始字符串,必须将其重新分配确保你理解你正在处理的部分,如果你从一个简单的程序开始,你可以看到replace没有像你期望的那样执行
如果我把你问题的标题照字面意思理解,你只想用下划线代替这些字母。这将保留所有特殊字符和数字的完整性。在这种情况下,可以使用
string.ascii_lettrs
和join
如您在其他注释中所述,实际上您希望下划线之间有一个空格,如果是这样,那么请使用
' '.join
试试看
从
string.replace()
的文档中:它返回一个字符串s的副本,其中所有出现的子字符串old替换为new。相关问题 更多 >
编程相关推荐