我正在尝试使用python替换字符串中的字符。我正在使用一个名为find_chr的函数来查找需要替换的字符的位置。
def main():
s='IS GOING GO'
x='N'
y='a'
rep_chr(s,x,y)
def find_chr(s,char):
i=0
for ch in s:
if ch==char:
return (i)
break
i+=1
return -1
def rep_chr(s1,s2,s3):
return print(s1==s1[0:find_chr(s1,s2)]+s3+s1[(find_chr(s1,s2)+1):])
main()
我的问题是,该函数返回'False'而不是获取新字符串。我很感激任何指针来获取被替换的字符串。
答案 0 :(得分:2)
有一个内置函数:
string.replace(old, new, count)
这将返回修改后的副本
count是可选的,是替换的次数-如果将其设置为2,它将替换前两次出现的情况。
string = 'abc abc abc def'
string.replace('abc','xyz',2)
返回
'xyz xyz abc def'
答案 1 :(得分:1)
更改
return print(s1==s1[0:find_chr(s1,s2)]+s3+s1[(find_chr(s1,s2)+1):])
到
return s1[0:find_chr(s1,s2)]+s3+s1[(find_chr(s1,s2)+1):]
并将结果打印在main
:
print(rep_chr(s,x,y))
答案 2 :(得分:1)
问题出在print
函数内的rep_chr
语句中。
s1==s1[0:find_chr(s1,s2)]+s3+s1[(find_chr(s1,s2)+1):]
以上陈述的意思是s1
等于s1[0:find_chr(s1,s2)]+s3+s1[(find_chr(s1,s2)+1):]
?
这是错误的,这就是你输出False的原因。