본문 바로가기
생산성 UP/파이썬

문과생의 파이썬 공부_#3. 문자열 STRING

by 하찮이 2020. 8. 11.

 

기본지식 0에서부터 차근차근 파이썬 공부를 시작한 지 이틀째다. 

 

youtu.be/JLT8qOdpDPM

 

오늘 (정신)노동요 선곡은 적재의 '별 보러 가자'로 정했다. 야밤에 공부하면서 듣기 딱임. 듣다 보면 정말 한강 가고 싶다. 못마시는 맥주도, 도시의 불빛 때문에 잘 보이지 않는 별도 이 노래처럼 누가 권한다면 바로 오케이할 거 같음. 

 

하지만 현실은 파워 코딩 공부해야 함(훌쩍)

 

 


문자열 기본 개념

 

문자열(String) : 문자, 단어 등으로 구성된 문자들의 집합. 따옴표(') 또는 큰따옴표(")로 묶어서 표시

예) "Abc", "123", '-d3d+'

 

여러 줄의 문자열로 구성된 변수 만들기: '''(따옴표 3개)"""(큰따옴표 3개)로 문자열 앞 뒤를 묶어주면 됨.

변수명 = '''
문자열1
문자열2
문자열3
'''

 

문자열 연결하기 : +로 연결

문자열 곱하기 : * 사용

 

len() : 문자열 길이를 구하는 함수. 공백도 포함해서 계산.

a = " Life is too short"
b = len(a)
print(b)
=> 17 출력

a = "Hi, Nice to meet you"
print(len(a))
=> 20 출력

 

<참고>
이스케이프 문자 : 특수문자를 사용하기 위해 \(파이썬에서는 역슬래시로 표시됨)을 붙여야 하는 문자

\n : 줄바꿈
\t : 탭(tab). 일반적으로는 4칸, 파이썬에서는 8칸 띄어쓰기.
\\ : 역슬래시 문자 기호 자체 표시
\" : 겹따옴표 출력
\' : 홑따옴표 출력


문자열 관련 함수

 

문자열 인덱싱 : 문자 번호(순서)로 찾는 것. 문자열의 첫 번째 문자 번호(인덱스 index)는 0임. 마이너스(-) 부호가 있을 경우 문자열의 맨 끝부터 시작함.

문자열 슬라이싱 : 문자열의 일부를 추출

a = "Life is too short"

print(a[0])
=> L 출력
print(a[-1])
=> t 출력

print(a[0:4])
=> Life 출력

 

문자열 포매팅 : 원하는 문자열 형식을 맞춤

a = "I eat %d apples." % 3
print(a)
=> I eat 3 apples. 

name = "Byul"
b = "Hello, My name is %s" % name
print(b)
=> Hello, My name is Byul

 

문자열명.count('특정 문자') : 특정 문자의 개수를 세 주는 함수. 해당 문자가 없는 경우 에러 대신 0을 출력.

a = 'Hello'

print(a.count('l'))
=> 2

 

문자열명.find('특정 문자') : 특정 문자의 위치를 찾아주는 함수. 인덱스 번호 값을 보여 줌. 첫 번째 인덱스로 나오는 경우에는 0을, 해당 문자가 없는 경우 -1을 출력

* 참고로 index()는 문자를 못찾는 경우 에러 메시지 출력

 

pin = "330203-1414532"

1. pin번호 앞자리 출력
after_pin = pin[pin.find("-")+1:]  # -기호를 중심으로 그 다음 인덱스부터 마지막 인덱스까지를 문자열 슬라이싱
print(after_pin)
=>330203

2. pin번호 뒷자리 출력
after_pin2 = pin[pin.find("-")-6:6]
print(after_pin2)
=>1414532

 

 

"구분자".join(문자열) : 문자 사이에 구분자를 넣어주는 함수. 엑셀 csv 파일을 만들 때 많이 사용됨

a = ",".join('abcd')
print(a)
=> a,b,c,d

a = ['My', "name", 'is', 'tim']
a = " ".join(a)   # " "은 한 칸 띄어쓰기를 넣기 위함
print(a)
=> My name is tim

 

문자열.split('구분자') : 구분자를 기준으로 문자열을 나누는 함수. join의 반대.

* 괄호 안에 아무것도 적지 않으면 공백 단위로 나눔

 

문자열.replace('찾을 문자', '바꿀 문자'): 문자열 바꾸기 함수

* 대소문자 구분함

a = "a:b:c:d"
print(a.replace(':', '#'))

* 참고로 기존 변수에 덮어쓰거나 새로운 변수를 생성하지 않고 print함수를 쓸 경우, 변수값이 변하지는 않음.

 

문자열.upper(): 대문자 변환 함수

문자열.lower(): 소문자 변환 함수

a = 'Hi'

print(a.upper())
=> HI

print(a.lower())
=> hi

 

문자열.strip(): 공백 제거 함수

문자열.lstrip(): 왼쪽 공백 제거 함수

문자열.rstrip(): 오른쪽 공백 제거 함수

a = "   hi   "

print(a.strip())
=> hi
print(a.rstrip())
=>    hi
print(a.lstrip())
=> hi   

 

 

댓글