2014-02-15 4 views
1

Я пытаюсь заменить символ в строке с помощью python. Я использую функцию find_chr, чтобы найти местоположение символа, который необходимо заменить.замена символа в строке в python

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

Похоже, вы изменили 'print (rep_chr (s, x, y))' to '(rep_chr (s, x, y))' ... –

+0

Почему вы не используете 'str.replace'? Просто пытаешься воссоздать его для удовольствия? –

ответ

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)) 
+0

Большое спасибо. Теперь я заметил, что я делаю неправильно. –

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 в качестве вывода.

+0

Спасибо за ввод Теперь он работает. –

Смежные вопросы