상세 컨텐츠

본문 제목

3. 파이썬 자료형 - (2) 문자열

Python

by evaseo 2021. 3. 4. 17:56

본문

1. 문자열 자료형 

(1) 문자열 만드는 방법 4가지 

1) 큰따옴표 

2) 작은 따옴표 

3) 큰따옴표 3개를 연속 사용(주석 & 문자열) 

4) 작은따옴표 3개를 연속 사용 (주석 & 문자열) 

5) 문자열에 따옴표 포함방법 

문자열에 큰따옴표를 포함하려면 작은따옴표로 감싸고, 작은따옴표를 포함하려면 큰 따옴표로 감싸면 된다. 

따옴표 앞에 백슬래시(\) 사용 

이스케이프 코드: 프로그래밍 할 때 사용할 수 있도록 미리 정의해 둔 ‘문자조합’ 

☞ \n: 줄 바꿈, \t: 문자열 간격, \\: \를 그대로 사용, \’: 작은따옴표 사용, \”: 큰따옴표 그대로 사용 

☞ 이스케이프 문자를 인식시키지 않을 때는 문자열 앞에 r을 써주면 된다. 

ex) r'c:\aa\nnc\kbs.txt' => c:\aa\nnc\kbs.txt 

(2) 문자열 연산 

1) 문자열 + 문자열 = 문자열이 연결되어 반환 

2) 문자열 * 숫자 = 숫자만큼 문자열 반복반환 

3) 문자열과 숫자형을 연산 할 때는 숫자를 문자열로 변환한 후에 연산가능 

str() 사용 

작은 따옴표나 큰 따옴표 사용 

ex) '강남'+'거리'+str(2021)+' ' +'20' +'21'+ ' ' + str(int('2000')+int('21'))
= > 강남거리2021 2021 2021 

(3) 문자열 길이 반환: len(문자열) -> 띄어쓰기도 포함 

a = “Life is short” 

 

L 

i 

f 

e 

 

i 

s 

 

s 

h 

o 

r 

t 

0 

 

 

 

 

 

 

 

 

 

1 

 

 

0 

1 

2 

3 

4 

5 

6 

7 

8 

9 

0 

1 

2 

 

(4) 인덱싱, 슬라이싱 

1) 인덱싱(Indexing): 문자열의 순서를 번호를 매긴 것 

ex) a[0] = ‘L’,  a[11] = r , a[-1] = t = a[12] 

2) 슬라이싱(Slicing): 잘라낸다 

ex1) a[0:3] = Lif => 범위: 0 a  3 

ex2) a[0:4] = Life => 범위: 0 a  4 

ex3) a[6:12] = s shor => 범위: 6 a  12 

ex4) a[6: ] = s shor => 범위: 6 a 끝까지 

ex5) a[ :4] = Life => 범위: a 3 처음부터 

ex6) a[ : ] = Life is short 

(5) 포매팅(Formatting) 

 

코드 

설명 

%s 

문자열 

%c 

문자1개 

%d 

정수 

%f 

부동소수 

%o 

8진수 

%x 

16진수 

%% 

% 

 

ex) “I eat %d apples.” %3 => ‘I eat 3 apples’ 

ex) '나는 키가 %f이고, 에너지가 %d%%.'%(177.7, 100) => 나는 키가 177.700000이고, 에너지가 100%. 

1) 정렬과 공백 

“%10s” % “hi”: 전체 길이 10자리에서 오른쪽 정렬로 hi입력 

 

 

 

 

 

 

 

 

h 

i 

“%-10sjane” %’hi’: 전체길이 10자리 왼쪽 정렬 hi + jane 

2)

h 

i 

 

 

 

 

 

 

 

 

j 

a 

n 

e 

소수점 표현 

“%0.4f” % 3.4251546: 소수점 아래 4번째까지 표현 => ‘3.4251’ 

%10.4f” % 3.0246256: 전체길이 10자리에서 오른쪽 정렬로 소수점 아래 4번 째까지 표현  

3)

 

 

 

 

3 

. 

0 

2 

4 

6 

format함수 사용 

인덱스로 대입 

ex1) '이름은 {0}, 나이는 {1}'.format('한국인', 33) => 이름은 한국인, 나이는 33 

ex2) '이름은 {1}, 나이는 {0}'.format(34, '강나루') => 이름은 강나루, 나이는 34 

{}의 순서대로 값을 입력하면 자동 대입 

ex) '이름은 {}, 나이는 {}'.format('신선해', 33) => 이름은 신선해, 나이는 33 

변수명으로 대입 

ex) '이름은 {name}, 나이는 {age}'.format(name='한국인', age=33) => 이름은 한국인, 나이는 33 

인덱스와 변수명을 혼용하여 대입가능 

정렬, 공백 채우기 

i. 왼쪽 정렬: “{0:[공백 채울 문자]<10}”.format(“hi”) 

ii.

h 

i 

 

 

 

 

 

 

 

 

오른쪽 정렬: “{0:[공백 채울 문자]>10}”.format(“hi”) 

iii.

 

 

 

 

 

 

 

 

h 

i 

가운데 정렬: “{0:[공백 채울 문자]^10}”.format(“hi”) 

 

 

 

 

h 

i 

 

 

 

 

소수점 표현 

ex) “{0:10.4f}”.format(3.0246256) 

 

 

 

 

3 

. 

0 

2 

4 

6 

중괄호 표현: {{ }}.format() => { } 

4) 파이썬 3.6버전부터는 문장 앞에 f를 붙이면 format함수를 대신할 수 있다. 

ex1) name = ‘홍길동’, age = 30
f’나의 이름은 {name}입니다. 나이는 {age}입니다.’
=> ‘나의 이름은 홍길동입니다. 나이는 30입니다.’ 

ex2) f'{"python":!^12}' => !!!python!!! 

(6) 문자열 관련 함수 

1) 특정문자 개수 세기: 문자열.count(‘특정문자’) 

ex) a = ‘hobby’
    a.count(‘b’) = 2 

2) 위치 찾기 

문자열.find(‘특정문자’) 

i. 특정문자가 처음으로 나오는 위치 index가 반환 

ii. 없다면 -1이 반환 

ex) s='sequence'
    s.find('e') = 1, s.find('e',3) = 4, s.rfind('e') = 7: 오른쪽에서부터 몇번 째에 e가 처음으로 나오는지  

문자열.index(‘특정문자’) 

i. 특정문자가 처음으로 나오는 위치 index가 반환 

ii. 없다면 error남 

3) 문자열 삽입: “삽입할 문자”.join(“삽입 대상”) 

ex) “:”.join(‘abcd’) => ‘a:b:c:d’ 

ex) “:”.join([‘a’,’b’,’c’,’d’]) => ‘a:b:c:d’ 

4) 소문자를 대문자로: 문자열.upper() 

5) 대문자를 소문자로: 문자열.lower() 

6) 공백지우기 

왼쪽 공백 지우기: 문자열.lstrip() 

오른쪽 공백 지우기: 문자열.rstrip() 

양쪽 공백 지우기: 문자열.strip() 

7) 문자열 바꾸기: 문자열.replace(‘변경 대상’, ‘대체할 문자’) 

ex) “안녕 조정석”.replace(‘안녕’, ‘하이’) => “하이 조정석” 

8) 문자열 나누기: 문자열.split([sep] = “기준문자” 또는 ‘ ‘) 

ex) ss = 'kbs mbc'.split(sep=' ') 

print(ss) => ['kbs', 'mbc'] 

관련글 더보기