Python/Syntax
2021. 8. 22. 14:45
문자열
큰 따옴표나 작은 따옴표로 묶으면 문자열이다.
- 여러 줄을 표현할 때는 끝에
\
를 붙이고 줄바꿈을 하거나, 문자열을 삼중 따옴표('''
,"""
)로 묶으면 된다.
- 여러 줄을 표현할 때는 끝에
이스케이프 시퀀스(escape sequence, 확장열)
확장열 설명 \n 개행 \t 탭 \" 큰따옴표 \' 작은따옴표 \ \ 문자 아스키 코드
다음과 같은 함수로 아스키 코드와 문자를 서로 변환할 수 있다.
print(ord('a')) print(chr(98)) for c in range(ord('A'), ord('Z')+1): print(chr(c), end='') ''' stdout 97 b ABCDEFGHIJKLMNOPQRSTUVWXYZ '''
문자열 연산
문자열 연결
기호 설명 + 문자열 연결 * 문자열 반복
문자열 관리
문자열 분리
인덱싱
문자열[정수]
인덱스는 앞에서부터 0, 1, 2, 3, ... 순서이다.
뒤에서부터는 -1, -2, -3, ... 순서이다.
s = "python" print(s[2]) print(s[-2]) ''' stdout t o '''
슬라이싱
문자열[begin:end:step]
메서드
메서드 | 설명 |
---|---|
.find(str) | str 문자열을 왼쪽부터 찾아 인덱스 반환, 없으면 -1 반환 |
.rfind(str) | 오른쪽부터 find |
.index(str) | find와 동일, 단 없으면 예외 발생 |
.count(str) | str 문자열 등장 횟수 반환 |
.startswith(str) | str으로 시작하면 True |
.endswith(str) | str으로 끝나면 True |
.isalpha() | 모든 문자가 알파벳이면 True |
.islower() | 모든 문자가 소문자면 True |
.isupper() | 모든 문자가 대문자면 True |
.isspace() | 모든 문자가 whitespace면 True |
.isalnum() | 모든 문자가 알파벳이나 숫자면 True |
.isdecimal() | 모든 문자가 10진수면 True |
.isdigit() | 모든 문자가 특수문자 포함 정수면 True (3^2 같은거) |
.isnumeric() | 모든 문자가 특수문자 포함 정수면 True (1/2 특수문자 같은거) |
.isidentifier() | 모든 문자가 변수명, 클래스명 등의 식별자로 사용할 수 있면 True |
.isprintable() | 모든 문자가 출력 가능한 문자면 True |
단어 in 문자열 | 문자열에 단어가 존재하면 True |
단어 not in 문자열 | 문자열에 단어가 없으면 True |
.lower() | 소문자로 |
.upper() | 대문자로 |
.swapcase() | 대문자 <-> 소문자 |
.capitalize() | 첫 글자만 대문자, 나머지는 소문자 |
.title() | 모든 단어의 첫 글자를 대문자로, 나머지는 소문자로 |
.strip() | 좌우 공백 제거 |
.lstrip() | 왼쪽 공백 제거 |
.rstrip() | 오른쪽 공백 제거 |
.split(구분자) | 구분자를 기준으로 단어를 분리하여 리스트로 리턴한다. 기본값은 공백 |
.splitlines() | 개행 문자를 기준으로 분리한다. |
결합문자열.join(문자열) | 문자열 사이에 결합문자열을 끼우고 연결하여 리턴한다. |
.replace(기존 문자열, 대체 문자열) | 기존 문자열을 대체 문자열로 교체 |
.center(폭 숫자) | 좌우에 공백을 채워 폭을 맞춘다. |
.ljust(폭 숫자) | 왼쪽에 공백을 채워 폭을 맞춘다. |
.rjust(폭 숫자) | 오른쪽에 공백을 채워 폭을 맞춘다. |
예시
name = "홍길동" if name.startswith("홍"): print("홍씨입니다.") if name.startswith("김"): print("김씨입니다.") file = "figure.jpg" if file.endswith(".jpg"): print("JPG 그림 파일입니다.") ''' stdout 홍씨입니다. JPG 그림 파일입니다. '''
s = "Good morning. my love KIM." print(s.lower()) print(s.upper()) print(s.swapcase()) print(s.capitalize()) print(s.title()) print() s = " angel " print(s + "님") print(s.strip() + "님") print(s.lstrip() + "님") print(s.rstrip() + "님") ''' stdout good morning. my love kim. GOOD MORNING. MY LOVE KIM. gOOD MORNING. MY LOVE kim. Good morning. my love kim. Good Morning. My Love Kim. angel 님 angel님 angel 님 angel님 '''
s = "짜장 짬뽕 탕수육" print(s.split()) s2 = "서울->대전->대구->부산" cities = s2.split("->") print(cities) for city in cities: print(city) print() s ="._." print(s.join("대한민국")) '''stdout ['짜장', '짬뽕', '탕수육'] ['서울', '대전', '대구', '부산'] 서울 대전 대구 부산 대._.한._.민._.국 '''
포맷팅
포맷 | 설명 |
---|---|
%d | 정수 |
%f | 실수 |
%s | 문자열 |
%c | 문자 하나 |
%h | 16진수 |
%o | 8진수 |
%% | % 문자 |
%[-]폭[.유효자리수] | 세세하게 설정할 때 |
$ | 좌우 채움 |
> | 왼쪽에 채움 |
< | 오른쪽에 채움 |
예시
name = "길동" age = 16 height = 162.5 print("이름:{0:$<10s}, 나이:{1:>05d}, 키:{2:!<8.2f}".format(name, age, height)) ''' stdout 이름:길동$$$$$$$$, 나이:00016, 키:162.50!! '''
파이썬3부터는
print(f"{number:%.2f}")
이런 식으로 사용한다.