2014-02-15 2 views
1

파이썬을 사용하여 문자열의 문자를 대체하려고합니다. 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() 

내 문제는 새 문자열을 가져 오는 대신 함수가 '거짓'을 반환한다는 것입니다. 내가 바꾼 문자열을 얻으려면 포인터를 주셔서 감사합니다.

+0

'print (rep_chr (s, x, y))'를'(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):]) 

당신의 main

return s1[0:find_chr(s1,s2)]+s3+s1[(find_chr(s1,s2)+1):] 

하고 결과를 인쇄하려면 다음

print(rep_chr(s,x,y)) 
+0

고마워요. 이제 내가 잘못하고있는 것을 발견했습니다. –

1

문제는 rep_chr 함수 내에서 당신의 print 문입니다. 상기 설정 수단

s1==s1[0:find_chr(s1,s2)]+s3+s1[(find_chr(s1,s2)+1):] 

s1[0:find_chr(s1,s2)]+s3+s1[(find_chr(s1,s2)+1):] 동일 s1입니까? 이것은 거짓이며 그 때문에 False가 출력으로 표시됩니다.

+0

입력 해 주셔서 감사합니다. 지금 작동 중입니다. –

관련 문제