티스토리 뷰

string = "test test test test"

while 1:
    print "\n\n1. 단어 추가"
    print "2. 문자열 출력"
    print "3. 문자 위치 찾기"
    print "4. 문자 바꾸기"
    print "5. 문자 위치 확인"
    print "0. EIXT"
    print "================"

    temp = raw_input(">")
    print "\n"

    if(temp == "1"):
        tt = raw_input("아무 문자 입력 >")
        string = string + " " + tt
        print string,"\n"
    elif(temp == "2"):
        print string
    elif(temp == "3"):
        tt = raw_input("찾을 문자 입력 >")
        print "찾을 문자가 있는 위치 : ",string.find(tt)
    elif(temp == "4"):
        t1 = raw_input("바꾸기 전 문자 입력 >")
        t2 = raw_input("바꾸기 후 문자 입력 >")

        string = string.replace(t1,t2)
        print string,"\n"
    elif(temp == "5"):
        for x in range(len(string)):
            print "[%3d] --> %s"%(x,string[x])
    elif(temp == "0"):
        break

문자열 변수를 사용하게 되면, 루비와 같이 많은 문자열 메소드들을 사용할 수 가 있다.
몇가지 사용한 것을 위의 예제에 적용해 보왔다.

문자열은 일반적으로 C언어와 같이 char 형태 하나 하나를 대치하여 바꿀 수 가 없게 설계되어 있다. 그래서, string중에서 어느 한부분을 바꾸기 위해서는 전체적인 연산을 이용해서 해야 한다.

예를 들자면,
1
2
3
4
5
string = "testing"

string = string[0] + "x" + string[2:]

print string
이런식으로 말이다.

그래서, 문자열 임의 패턴 찾기나 변경을 하기 위해서는 메소드를 사용하는 것이 편하다.

다시 위의 예제를 보면, find(Pattern) 메소드가 있는데, 이는 처음 부터 문자열을 체크하여 동일한 Pattern이 있는 위치를 찾아서 값을 넘겨준다. 없을 때는 -1를 반환한다.

물론 동일한 기능을 가진 index(Pattern) 메소드가 있는데, 이는 없을 때 ValueError를 반환하기 때문에 Exception에 사용하면 될 것이다.

replace(t1,t2) 메소드도 재미난 녀석이다. 패턴 t1에 해당되는 문자열의 부분들을 모조리 t2로 치환한다. 오버로드 기법으로 replace(t1,t2,number)에 숫자를 넣을 수 있는데, 이는 바꾸는 횟수를 지정 할 때 사용한다.
댓글
댓글쓰기 폼