반응형

 

파이썬 - 문자열 메소드와 문자열 다루기

 

 

   목차

  1. 문자열 만들기
  2. 문자열에서 특정 문자 선택하기
  3. 문자열에 변수값 입력하기
  4. 문자열 메소드
    1. 사용예제

 

 

1. 문자열 만들기

 

파이썬에서는 큰따옴표와 작은따옴표를 사용하여 아래와 같은 4가지 방식으로 문자열을 만들수 있습니다. 

s1 = "문자열1"
s2 = '문자열2'
s3 = """문자열3"""
s4 = '''문자열4'''
print(s1, s2, s3, s4)

#실행결과#
문자열1 문자열2 문자열3 문자열4

 

cf) 문자열에 정수를 곱하면 문자열이 정수배 만큼 반복 적용됩니다.

s = 'abc'
print(s * 3) 

#실행결과#
abcabcabc

 

 

2. 문자열에서 특정 문자 선택하기

 

문자열의 각 문자별 인덱스 위치를 대괄호( [  ] ) 안에 지정하여 특정 문자를 선택할 수 있습니다. 

s = 'abcd'
print("1: ",  s * 3)
print("2: ",  s[0], s[1], s[2], s[3])
print("3: ",  s[-1], s[-2], s[-3], s[-4])
print("4: ",  s[0:], s[:2])

#실행결과#
1:  abcdabcdabcd
2:  a b c d
3:  d c b a
4:  abcd ab

 

 

 

3. 문자열에 변수값 입력하기

 

문자열에 변수값을 지정하여 변수값을 전달받아 문자열을 만들수 있습니다. 방법은 아래와 같이 3가지 형태가 있으며, 편리한 방법을 선택하여 사용하시면 됩니다. 

 

name='홍길동'
age = 20
print("방법1: ", "이름은 %s이고 나이는 %d살 입니다" %(name, age))
print("방법2: ", "이름은 {0}이고 나이는 {1}살 입니다".format(name, age))
print("방법3: ", f"이름은 {name}이고 나이는 {age}살 입니다")

#실행결과#
방법1:  이름은 홍길동이고 나이는 20살 입니다
방법2:  이름은 홍길동이고 나이는 20살 입니다
방법3:  이름은 홍길동이고 나이는 20살 입니다

 

 

 

4. 문자열 메소드

 

다양한 문자열 메소드를 활용하여 문자열 내용을 조작할 수 있습니다. 여기에서는 자주 사용되는 메소드를 알아보도록 하겠습니다.

 

  1. count(검색문자열) :  검색문자열의 개수를 반환
  2. find(검색문자열) :  검색문자열의 위치값을 반환 (없으면 -1 반환)
  3. index(검색문자열) :  검색문자열의 위치값을 반환 (없으면 Error 발생)
  4. replace(기존문자열, 새문자열) :  기존문자열을 새문자열로 변환
  5. split(구분문자열) :  구분문자열을 기준으로 문자열을 분리하여 분리된 각 문자열을 list 형태로 저장함
    • split( ) :  공백을 기준으로 문자열을 분리함
  6. join(리스트) :  리스트의 각 요소를 구분문자열로 연결하여 하나의 문자열로 변환
  7. strip( ) :  문자열의 양쪽에 있는 공백들을 제거함 (lstrip( ) : 왼쪽만 제거,  rstrip( ) : 오른쪽만 제거)
    • strip(삭제할문자들) :  문자열의 양쪽에 있는 삭제할문자들을 제거함

 

cf) str.maketrans(기존문자, 새문자)로 변환테이블을 만든후 translate(변환테이블)을 사용하면, 문자열의 각 문자를 변환테이블과 매칭되는 문자로 변환할 수 있습니다. 

 

 

1) 사용예제

s1 = "a-ab-abc-abcd"
print("01: ", s1.count('abc'))
print("02: ", s1.find('b'))    #특정 문자열이 없으면 -1 반환
print("03: ", s1.index('b'))   #특정 문자열이 없으면 Error 발생
print("04: ", s1.replace('a', '1'))
print("05: ", s1.split('-'))
print()

s2 = ['a', 'b', 'c', 'd']
print("06: ", '-'.join(s2))
print()

s3 = "   1123211   "
print("07: ", s3 + '세')
print("08: ", s3.strip() + '세')
print("09: ", s3.lstrip() + '세')
print("10: ", s3.rstrip() + '세')
print("11: ", s3.strip(' 12') + '세')
print()

t1 = str.maketrans("abc", "123")
print("12: ", s1.translate(t1))

 

[실행결과]

01:  2
02:  3
03:  3
04:  1-1b-1bc-1bcd
05:  ['a', 'ab', 'abc', 'abcd']

06:  a-b-c-d

07:     1123211   세
08:  1123211세
09:  1123211   세
10:     1123211세
11:  3세

12:  1-12-123-123d

 

 

반응형

+ Recent posts