Python 如何替换字符串中的子字符串?
我正在尝试编写一个程序来更改字符,如果在名为st的字符串中发现ch,我将用“!”替换它 我编写了一个程序,但由于某些原因,此代码不能替换一个字母,例如,如果我输入: st=a ch=a 我没有得到“!”的输出相反,我得到了“a”,但我不希望我想要的是“a!” 我的代码是Python 如何替换字符串中的子字符串?,python,replace,Python,Replace,我正在尝试编写一个程序来更改字符,如果在名为st的字符串中发现ch,我将用“!”替换它 我编写了一个程序,但由于某些原因,此代码不能替换一个字母,例如,如果我输入: st=a ch=a 我没有得到“!”的输出相反,我得到了“a”,但我不希望我想要的是“a!” 我的代码是 st = raw_input("String: ") ch = raw_input("character: ") def replace_char(st,ch): if st.find(ch): ne
st = raw_input("String: ")
ch = raw_input("character: ")
def replace_char(st,ch):
if st.find(ch):
new = st.replace(ch,'!')
print new
return new
elif len(st)==len(ch):
if ch==st:
print"!"
else:
print st
else:
print st
return st
replace_char(st,ch)
请帮助我不要从Python文档中的代码中了解我做错了什么或遗漏了什么: 它没有说明find()返回True或False。这是你的问题 对于子字符串搜索,最好使用
if some_string in some_otherstring:
do_something()
st.find(ch)返回ch位于st not True/False的位置。因为在Python中,如果==True为True,您的程序在某些情况下可以工作…:)
考虑STR==‘a’和CH==‘a’,第一个条件失败,但第二个条件只有当STR和CH具有相同的长度时才起作用。我猜你的书里还有别的东西。
在我的电脑中,除了在st中首先搜索ch的情况外,您的程序可以工作,如下所示:st='afsdf'ch='a'。
更好的解决方案如下:
st.replace(ch, '!')
它在任何情况下都能工作。使用合理的主题->Downvote.str.find()不返回True或False,它返回找到的字符串的索引。很抱歉,这是旧的,我更改了它,但仍然无法工作…你没有阅读答案我正在阅读你的评论,我摆脱了真实的部分,现在它应该工作得更好,但它不能正常工作
st.replace(ch, '!')