티스토리 뷰
문자열
문자들의 집합으로 단일 따옴표('), 이중 따옴표("), 삼중 따옴표('''or""")를 사용하여 문자뜰을 감싼 형태로 표현합니다.
문자열 유형 예시
# 문자열 유형
oneLine = "this is one line string"
print (oneline)
this is one line string
multiLine = """this is
multi line
string"""
print(multiLine)
this is
multi line
string
multiLine2 ="this is\nmulti line\nstring"
print(multiLine2)
this is
multi line
string
oneLine 변수는 한 줄의 문자열 객체를 할당받는 변수입니다.
단일 따옴표를 이용하여 'this is one line string' 형식으로 표기할 수 있습니다.
문자열 특징
문자들의 집합으로 일정한 순서를 가지는데, 색인(index)이라는 용어로 부릅니다.
색인을 이용하면 문자열을 구성하는 특정 문자를 참조할 수 있습니다.
문자열 색인과 연산 예시
# (1) 문자열 색인
string = "PYTHON"
print(string[0])
print(string[5])
print(string[-1])
print(string[-6])
P
N
N
P
# (1) 문자열 연산
print("python" + " program") # 결합연산자
python program
#print("python-" + 3.7 + ".exe") # error
print("python-" + str(3.7) + ".exe") # python-3.7.exe
python-3.7.exe
print("-"*30) # 반복연산자
#(1) 문자열 색인
string [0]은 string 객체의 첫 번째 문자를 가리키는 색인이고, string [-1]은 string의 마지막 문자를 가리키는 색인입니다.
#(2) 문자열 연산
문자열과 문자열을 대상으로 덧셈(+) 연산자를 사용할 경우 두 개의 문자열을 결합하는 결합연산자 역할을 합니다.
문자열과 숫자를 결합할 경우에 오류가 발생하는데, 해결하려면 str() 함수에 숫자를 인자로 넣고, 문자형으로 변환한 후 결합연산을 하면 됩니다.
슬라이싱(slicing)
색인의 범위를 이용하여 특정 문자열을 대상으로 부분 문자열을 생성하는 기법.
슬라이싱을 위한 색인의 범위는 시작과 끝 색인 사이에 콜론(:) 기호를 사용합니다.
*문자열[시작색인 : 끝색인 : 증감값]
슬라이싱 예시
# (1) 왼쪽 기준
print(oneLine)
this is one line string
print("문자열 길이 : ", len(oneLine))
문자열 길이 : 23
print(oneLine[0 : 4])
this
print(oneLine[:4])
this
print(oneLine[:]) # 전체 원소
this is one line string
print(oneLine[::2]) # 2의 배수 Index
ti soeln tig
# (2) 오른쪽 기준
print(oneLine[0:-1:2])
ti soeln ti
print(oneLine[-6:-1]
strin
print(oneLine[-6:])
string
# (3) 부분 문자열 생성
subString = oneLine[-11: ]
print(subString)
line string
#(1) 왼쪽 기준
oneLine 문자형 객체는 23개의 문자 집합으로 구성되어 있습니다. oneLine[0:4]는 0부터 4 이전까지의 색인에 해당하는 문자열이 슬라이싱 됩니다. oneLine [:4]는 처음부터 4 이전까지의 색인에 해당하는 문자열이 슬라이싱 됩니다. 그리고 oneLine [:]는 전체 문자열이 선택되고, oneLine [::2]는 전체를 대상으로 색인이 2씩 증가하여 슬라이싱 됩니다.
#(2) 오른쪽 기준
oneLine[0 :-1 :2]는 왼쪽 처음부터 오른쪽 끝 이전까지 2씩 증가하여 슬라이싱 됩니다. oneLine [-6:-1]는 오른쪽 맨 끝을 기준으로 6번째 문자부터 마지막 문자 이전까지 슬라이싱 되고, oneLine [-6:]는 오른쪽 맨 끝을 기준으로 6번째 문자부터 마지막 문자까지 슬라이싱 됩니다.
#(3) 부분 문자열 생성
oneLine[-11: ]는 오른쪽 맨 끝을 기준으로 11번째 문자에서 마지막 문자까지 슬라이싱하여 subString 변수에 새로운 객체로 할당됩니다.
문자열 처리 함수
문자열 처리 함수는 문자열을 수정하거나 조작하는 함수입니다. 형태소 분석이나 자연어 처리 시 유용하게 이용될 수 있습니다.
문자열 처리 함수와 기능
함수명 | 기능 |
s.lower() | 문자열 s를 모두 소문자로 변경한다. |
s.upper() | 문자열 s를 모두 대문자로 변경한다. |
s.swapcase() | 문자열 s의 대문자는 소문자로, 소문자는 대문자로 변경한다. |
s.lstrip() | 문자열 s의 왼쪽 공백을 모두 지운다. |
s.rstrip() | 문자열 s의 오른쪽 공백을 모두 지운다. |
s.strip() | 문자열 s의 양쪽 공백을 모두 지운다. |
s.count(x) | 문자열 s에서 x와 일치하는 문자의 개수를 반환한다. |
s.find(x) | 문자열 s에서 문자 x가 처음으로 나온 위치를 반환한다. (없으면 -1 반환) |
s.rfind(x) | 문자열 s에서 문자 x가 처음으로 나온 위치를 오른쪽 끝에서부터 찾는다. |
s.index(x) | 문자열 s에서 문자 x가 처음으로 나온 위치를 반환한다. (없으면 에러 발생) |
'구분자'.join(s) | 문자열 s를 구성하는 요소 문자를 '구분자'로 결합시킨다. |
s.replace(x, r) | 문자열 s를 대상으로 x라는 문자를 r이라는 문자로 교체하다. |
s.split('구분자') | 문자열 s에서 '구분자'를 기준으로 문자열을 분리시킨다. |
s.startswith('H') | H라는 문자로 시작되는지 여부를 True 또는 False로 반환한다. |
문자열 처리 함수 예시
# (1) 특정 글자 수 반환
oneLine = "this is one line string"
print('t 글자 수 : ', oneLine.count('t'))
t 글자 수 : 2
# (2) 접두어 문자 비교 판단
print(oneLine.startswith('this'))
True
print(oneLine.startswith('this'))
False
# (3) 문자열 교체
print(oneLine.replace('this', 'that'))
that is one line string
# (4) 문자열 분리(split) : 문단 -> 문장
multiLine = """this is
multi line
string"""
sent = multiLine.split('\n')
print('문장 : ', sent)
문장 : ['this is', 'multi line', 'string']
# (5) 문자열 분리(split)2 : 문장 -> 단어
words = oneLine.split(' ') # split(sep = ' ') : default
print('단어 :', words)
단어 : ['this', 'is', 'one', 'line', 'string']
# (6) 문자열 결합(join) : 단어 -> 문장
sent2 = ','.join(words) # '구분자'.join(string)
print(sent2) # this, is, one, line, string
this, is, one, line, string
# (1) 특정 글자 수 변환
oneLine 문자열에서 count() 함수는 't'문자가 출현된 수를 반환하는 함수입니다.
# (2) 접두어 문자 비교 판단
oneLine 문자열에서 startswith() 함수는 접두어가 'this'이면 True를 반환하고, 다른 접두어면 False를 반환합니다.
# (3) 문자열 교체
oneLine 문자열에서 replace() 함수는 'this'를 'that'으로 교체하는 역할을 합니다.
# (4) 문자열 분리(split): 문단 -> 문장
multiLine 문자열을 대상으로 split() 함수는 줄 바꿈('\n') 구분자를 기준으로 문자열을 분리합니다. 여러 줄의 문장을 갖는 문단으로부터 줄 단위 문장을 만들 때 이용합니다.
# (5) 문자열 분리(split) 2: 문장 -> 단어
multiLine 문자열을 대상으로 split() 함수는 공백(' ') 구분자를 기준으로 문자열을 분리합니다. 문단으로부터 단어를 만들 때 이용합니다.
# (6) 문자열 결합(join): 단어 -> 문장
문자열이 분리된 words를 대상으로 join() 함수는 구분자 콤마(')를 기준으로 다시 하나의 문자열로 결합합니다. 단어를 문장으로 만들 때 이용합니다.
이스케이프 문자
어떤 기능으로부터 벗어난 기능을 의미합니다. 프로그램의 명령어 이외에 특수기능을 갖는 문자들을 일컫습니다.
이스케이프 문자와 처리 내용
이스케이프 문자 | 처리 내용 |
\n | 줄바꿈 처리 |
\t | Tab키 처리 |
\r | 캐리지 리턴 처리(다음 줄 첫 칸으로 이동 기능) |
\f | 폼 피드 처리(한 페이지 넘김 기능) |
\b | 백 스페이스 처리 |
\\ | 문자 "\" 처리 |
\' | 문자 '처리 |
\" | 문자 "처리 |
\000 | 널 문자 처리 |
이스케이프 문자 기능 차단 예시
# (1) escape 문자 적용
print('escape 문자 차단 ')
escape 문자 차단
print('\n출력 이스케이프 문자') # \n : 줄 바꿈 기능
출력 이스케이프 문자
# (2) escape 문자 기능 차단
print('\\n출력 이스케이프 기능 차단1')
\n출력 이스케이프 차단1
print(r'\n출력 이스케이프 기능 차단2')
\n출력 이스케이프 기능 차단2
# (3) 경로 표현 : C:\Python\test
print('path =', 'C:\Python\test')
path = C:\Python est
print('path =', 'C:\\Python\\test')
path = C:\Python\test
print('paht =', r'C:\Python\test')
path = C:\Python\test
# (1) escape 문자 적용
"\n출력 이스케이프 문자" 형식으로 문자열을 출력하면 한 줄을 건너뛴 다음에 '출력 이스케이프 문자'의 문자열이 출력됩니다.
# (2) escape 문자 기능 차단
이스케이프 문자 앞에 역슬래시(\)를 하나 더 붙이거나 문자열 앞에 r를 붙여서 줄 바꿈 이스케이프 문자 기능을 차단하고, 문자열 '\n'을 출력합니다.
# (3) 경로 표현
폴더와 파일의 경로를 문자열로 출력하기 위해서 이스케이프 문자 기능을 차단하고 있습니다. 만약 차단하지 않으면 '\test' 문자열의 '\t'에 의해서 탭(Tab) 키 기능이 적용됩니다.
'Python > 실전 예제로 배우는 파이썬 프로그래밍' 카테고리의 다른 글
조건문 (0) | 2023.02.26 |
---|---|
파이썬 기본 도구 익히기 연습문제 (0) | 2023.02.25 |
표준입출력장치 (2) | 2023.02.23 |
연산자(Operator) (0) | 2023.02.22 |
변수와 자료형 (0) | 2023.02.21 |
- Total
- Today
- Yesterday
- nlp
- 데이터 분석
- API
- 프로그래밍
- 캐글
- 태블로
- 프로그래머스
- EDA
- 파이썬
- 데이터사이언스
- ai
- 알고리즘
- SQLD
- 데이터 시각화
- Kaggle
- Python
- 쿼리 테스트
- SQL
- 딥러닝
- 데이터분석
- 인공지능
- lv4
- Lv3
- LV2
- sql 테스트
- 부스트코스
- mysql
- ML
- 머신러닝
- LV1
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |