替换python中字符串中的字符

时间:2014-02-15 04:29:17

标签: python

我正在尝试使用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'而不是获取新字符串。我很感激任何指针来获取被替换的字符串。

3 个答案:

答案 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的原因。