문자열
- 문자와 단어 등으로 구성된 문자들의 집합을 의미
- Python의 문자열은 유니 코드 문자를 나타내는 바이트 배열
- 단일 문자는 길이가 1 인 문자열
- 숫자도 따옴표 안에 있으면 문자열
- 파이썬의 문자열 리터럴은 작은 따옴표 또는 큰 따옴표로 묶음
-> 작은 따옴표 또는 큰 따옴표 세 개를 연달아 입력하는 방법도 가능
간단한 문자열 만들어 보기
• “Hello” • ‘안녕하세요’
• '''문자열을 공부하고 있습니다.'''
• """문자열을 공부하고 있습니다."""
문자열 내부에 따옴표를 넣으려면?
- 큰따옴표(작은따옴표) 안에 작은따옴표(큰따옴표)로 문자를 표기해야 함
- ""안에 ""을 넣는다면, 단순 문자열이 두 번 반복되는 걸로 파이썬 인터프리터는 이해함
예 : ""안녕"하세요" → “”, “하세요” 가 독립된 문자열로 인식됨. 안녕은 문자열로 인식도 안됨 - 혹은 이스케이프 문자 (역슬래쉬 \ 기호와 함께 사용, 한국어 키보드에서는 원화표시 ₩)를 함께 사용
예 : \', \''
문자열 연산
- 문자열 연산에도 숫자형과 비슷하게 +, * 연산을 적용할 수 있음
- + : 주어진 여러 문자열 연결 (합치기)
문자열 + 문자열 + ,,, + 문자열 (O)
문자열 + 숫자형 (X) - * : 주어진 문자열 반복
문자열 * 반복 횟수(숫자)
반복 횟수(숫자) * 문자열
문자열 연산에도 아래 복합대입연산을 적용할 수 있음
문자열 in 연산
문자열 내부에 어떤 문자열이 있는지 확인하려면 in 연산자를 사용할 수 있고, true/false를 반환해줌
문자열 인덱싱
- 문자열 내부적으로 보면 하나의 단어는 각각 하나의 인덱스(index)에 맵핑 될 수 있음
- 기본적인 인덱스는 0부터 시작되며, 해당 문자열의 길이-1까지 인덱스가 존재함
“안녕하세요”는 길이가 5이므로, 인덱스는 0~4까지 가능 - 문자열을 받은 변수 혹은 문자열 자체에 대해서 인덱스를 대괄호[]와 함께 사용해서 접근할 수 있음
- 인덱스는 양수뿐만 아니라 음수도 가능함
문자열 슬라이싱
- 주어진 문자열에 대해서 특정 문자 1개에만 접근할 수 도 있지만, 문자열의 범위를 선택해야 하는 경우도 있음
예 : 문자열의 두 번째 문자부터 다섯 번째 문자까지 선택하기 - 이렇게 부분 문자열을 추출하는 방법을 슬라이싱이라고 하며, 대괄호와 :을 통해서 표시할 수 있음
- 작성 방법: [ : ] -> [부분 시작 문자의 인덱스 : 부분 끝 문자의 인덱스 + 1]
예 : a[1:4] → 문자열 a의 부분 시작 문자의 인덱스 1부터
부분 끝 문자의 인덱스 3 → “녕하세” 선택
생략 슬라이싱
• 대괄호 안에 넣는 숫자 둘 중 하나를 생략하여 사용할 수 있음
예 : [1:] [: 3]
• 뒤의 값 생략 시 가장 최대 위치 (마지막 글자)까지 지정
[1:] → [1:가장 마지막 글자 인덱스 + 1]
• 앞의 값 생략 시 가장 최소 위치 (첫번째 글자)부터 지정 [:3] → [0:가장 마지막 글자의 인덱스인 2 + 1]
- 슬라이싱에서도 인덱싱과 같이 음수도 가능
• a[1:-2] → “녕하” - 여기서도 뒷 인덱스는 원하는 끝 문자의 index보다 하나 커야 함
부분 끝 문자의 인덱스 -3 + 1 = -2
A[-5: -2] → “안녕하”
음수를 사용하는 슬라이싱에서도 앞/뒤 숫자 중 하나를 생략할 수 있음
뒤의 값 생략 시 가장 최대 위치 (마지막 글자)까지 지정 → a[-4:]
앞의 값 생략 시 가장 최소 위치 (첫번째 글자)부터 지정 → a[:-1]
슬라이싱시 아무런 숫자를 주지 않으면?
전체 문자열을 슬라이싱 함
문자열 관련 함수
문자열 길이 구하기
- len() 함수
- ()안에 문자열을 넣으면 주어진 문자열의 문자 개수(=문자열의 길이)를 계산해서 돌려줌
예 : len(“안녕하세요”) → 5라는 숫자를 돌려줌 - 문자열에 공백이나 이스케이프 문자가 있을 경우 그것도 count하여 돌려줌
문자열 찾기
- find()라는 함수는 입력으로 주는 argument 문자가 처음 나타나는 위치(index 값)를 반환해주는 작업을 함
format() 함수
- “”로 묶인 문자열 안에 있는 중괄호{} 안의 문자가 format() 함수의 argument 로 주는 값으로 대치됨
예 : “제 나이는 {} 살 입니다.”.format(20) → {} 대신 20으로 대치가 됨
대소문자 바꾸기
- upper(), lower() 함수
- upper() 함수는 모든 알파벳을 대문자로 변환
- lower() 함수는 모든 알파벳을 소문자로 변환
문자열의 양 옆의 공백 제거하기
- strip() 함수
문자열의 구성 파악하기
- isOO() → is가 붙어있기 때문에 True 혹은 False 반환
- isalnum(): 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인
- isalpha(): 문자열이 알파벳으로만 구성되어 있는지 확인
- islower(): 문자열이 모두 소문자로만 구성되어 있는지 확인
- isupper(): 문자열이 모두 대문자로만 구성되어 있는지 확인
문자열 자르기
- 문자열을 특정한 문자로 자르고 싶을 때 split() 함수를 사용
- default는 white space(공백)
'Python Category > Python' 카테고리의 다른 글
[Python] 변수와 입력 (0) | 2023.08.26 |
---|---|
[Python] 파이썬 자료형 (0) | 2023.08.24 |
[Python] 파이썬 기본적인 용어 (0) | 2023.08.23 |
[Python] 내장 함수 (0) | 2022.12.09 |
[Python] 예외 처리 (2) | 2022.12.09 |