목차
문자열 기본형태
변수에 문자열 담기
여러 줄 문자열
문자열은 배열 일종
문자열 자르기 (= 슬라이싱) ※ 색인번호
문자열 음수색인
문자열 길이
문자열 메서드
문자열 포함 체크
문자열 연결
문자열과 숫자 결합 + 문자열 치환 (= 문자열 포맷)
회피문자 (Escape Character)
문자열 메서드 종류
문자열 반복
문자열 기본형태
1. 문자열은 큰따옴표(")나 작은따옴표(')로 감싸야 함. 2. print() 명령어로 출력 가능.
(예제)
print("Homzzang.com")
print('Homzzang.com')
변수에 문자열 담기
변수명 뒤에 등호(=) 붙이고 문자열 기재.
hz = "Homzzang.com"
print(hz)
여러 줄 문자열
3개의 따옴표를 사용해 여러 줄 문자열을 변수에 할당 가능.
(예1) - 큰따옴표 3개 경우
hz = """Homzzang.com
홈짱닷컴 그누보드 및 서버 강의
코딩 배우러 놀러오세요"""
print(hz)
(예2) - 작은따옴표 3개 경우
hz = '''Homzzang.com
홈짱닷컴 그누보드 및 서버 강의
코딩 배우러 놀러오세요'''
print(hz)
※ 줄바꿈은 코드에서의 줄바꿈과 동일. (<pre> 태그 적용 효과와 비슷)
문자열은 배열 일종
1.
다른 많은 인기 프로그래밍 언어와 마찬가지로,
Python의 문자열은 유니 코드 문자를 나타내는 Byte 배열 임.
※ 배열 색인번호는 0부터 시작.
2. 그러나,
Python에는 charactor(단일 문자) 데이터 타입이 없으며,
charactor(단일 문자)는 길이가 1인 string(문자열)뿐임.
3.
문자열은 배열이므로, [index ] 기호 사용해 문자열 각 요소에 접근.
※ 엄밀히는, 문자열은 배열 이 아니고 반복자그릇 (iterable) 임.
※ iterable은 각 구성요소인 반복자 (iterator)에 순차 접근 가능.
string [ index ]
※ index 는 왼쪽부터 시작 시 0부터 시작. (예) 0, 1, 2, ...
※ index는 오른족부터 시작 시, -1부터 시작. (예) ...-3,-2,-1
※ 공백이나 특수문자 역시 각각 1개의 색인번호 차지.
[예제]
hz = "Homzzang.com"
print(hz[2] )
결과값: m
문자열 자르기 (= 슬라이싱) ※ 색인번호
string [start :stop :step ]
※ start : 선택. 시작 색인번호. (기본값: 0)
※ stop : 필수 . 종료 색인번호. (포함 X )
※ step : 선택. 색인번호 증가폭. (기본값: 1)
★ step이 음수인 경우, 오른쪽에서 왼쪽으로 진행.
※ string(5:0:-1) : 5부터 0 앞까지 -1씩 감소.
※ string [::-1] : 문자 순서 뒤집기.
cf. slice() 함수 : 객체 자르기 (= 객체의 일부분만 선택.)
[예제]
hz = "홈짱닷 컴 Homzzang.com"
print(hz[1:3] )
결과값: 짱닷
PS. hz[1:10:2] 형태 경우, 1부터 10앞까지 2칸 간격으로 출력.
문자열 음수색인
음수 색인번호 경우, 문자열 끝(-1 )부터 시작.
hz = "홈짱닷컴 Homzzang .com"
print(hz[-9:-4 ])
반환값: zzang
PS. 문자열 끝까지 출력시키려면 끝 색인번호 입력 안 하면 됨.
hz = "홈짱닷컴 Homzzang.com "
print(hz[-3: ])
반환값: com
문자열 길이
len() 함수 - 문자열 길이 반환. ※ 주의: len(str ) 형태로 사용.
hz = "홈짱닷컴 Homzzang.com"
print(len(hz) )
반환값: 17
※ 주의: len()은 함수라 아래 메서드들과 사용법이 다름.
문자열 메서드
strip() 메서드 - 문자열 시작 또는 끝에서 공백 제거.
hz = " 홈짱닷컴 Homzzang.com "
print(hz.strip() )
반환값: 홈짱닷컴 Homzzang.com
lower() 메서드 - 소문자로 된 문자열 반환.
hz = "홈짱닷컴 Homzzang.com"
print(hz.lower() )
반환값: 홈짱닷컴 homzzang.com
upper() 메서드 - 대문자로 된 문자열 반환.
hz = "홈짱닷컴 Homzzang.com"
print(hz.upper() )
반환값: 홈짱닷컴 HOMZZANG.COM
replace() 메서드 - 특정 문자열을 지정 문자열로 변환.
hz = "홈짱닷컴"
print(hz.replace("홈짱닷컴","Homzzang.com") )
반환값: Homzzang.com
split() 메서드 - 지정한 구분자 기준으로 문자열 반할 후 배열로 반환.
hz = "홈짱닷컴 Homzzang.com"
print(hz.split(" ")) # 공백 기준해 분할.
반환값: ['홈짱닷컴', 'Homzzang.com']
문자열 메서드 더 보기
문자열 포함 체크
in (또는 not in) 키워드 - 문자열 포함 체크할 때 사용.
hz = "홈짱닷컴 Homzzang.com"
x = "홈짱" in hz
print(x) # True
hz = "홈짱닷컴 Homzzang.com"
x = "홈짱" not in hz
print(x) # False
문자열 연결
+ 연산자 - 문자열 연결에 사용.
a = "홈짱닷컴"
b = " Homzzang.com"
hz = a + b
print(hz)
반환값: 홈짱닷컴 Homzzang.com
PS. 문자열 사이에 공백 추가 방법.
a = "홈짱닷컴"
b = "Homzzang.com"
hz = a + " " + b
print(hz)
반환값: 홈짱닷컴 Homzzang.com
문자열과 숫자 결합 + 문자열 치환 (= 문자열 포맷)
1. 일반적으로는 문자열과 숫자 불가함. 변수편 참고 .
num = 2012
txt = "홈짱닷컴 Homzzang.com"
hz = txt + " " + num
print(hz)
반환값: 에러 발생.
2. format() 메서드 사용해, 문자열과 숫자 결합 가능.
※ format() 메서드는 인수를 형 변환 후, 문자열 안 {} 위치에 반환.
num = 2012
txt = "홈짱닷컴 Homzzang.com"
hz = txt + " {} "
print(hz.format(num) )
반환값: 홈짱닷컴 Homzzang.com 2012
3. format() 메서드는 무제한의 인수 가능하며, 순서대로 {}에 배치.
year = 2012
month = 5
txt = "홈짱닷컴 Homzzang.com"
hz = txt + " Since {} 년 {} 월 "
print(hz.format(year, month) )
4. format() 메서드는 {} 안에 색인번호 지정해 직접 위치 지정 가능 .
year = 2012
day = 12
txt = "홈짱닷컴 Homzzang.com"
hz = txt + " Since May {1} th, {0} "
print(hz.format(year, day) )
반환값: 홈짱닷컴 Homzzang.com Since May 12th, 2012
5. Dictionary의 value값으로 문자열 대체.
dic = {"사과": "apple", "배": "pear"}
print("사과는 영어로 %s " %(dic["사과"]) )
결과값: 사과는 영어로 apple
회피문자 (Escape Character)
\ (백슬래시) - 구문 상 "입력 불가 문자"를 입력할 때 사용.
※ 종류 : \" , \ ' , \\ , \n , \r , \t , \b , \f , \ooo , \xhh
1. \" : 큰따옴표 안에 큰따옴표 입력.
hz = "\"홈짱닷컴\" Homzzang.com"
print(hz)
반환값: "홈짱닷컴" Homzzang.com
2. ' : 작은따옴표 안에 작은따옴표 입력.
hz = ''홈짱닷컴' Homzzang.com'
print(hz)
반환값: '홈짱닷컴' Homzzang.com
3. \\ : \ (역슬래시) 입력.
txt = '\\ (백슬래시)는 입력 불가 회피할 때 사용.'
print(txt)
반환값: \ (백슬래시)는 입력 불가 회피할 때 사용.
4. \n : 개행 (= 문자열 입력 라인 변경).
hz = "홈짱닷컴 \nHomzzang.com"
print(hz)
반환값:
홈짱닷컴
Homzzang.com
5. \r : 캐리지 리턴 (Carrage Return : 새 줄 시작)
hz = "홈짱닷컴 \rHomzzang.com"
print(hz)
반환값: Homzzang.com
6. \t : 탭 (Tab) 키 누른 만큼 간격 띄우기.
hz = "홈짱닷컴 \tHomzzang.com"
print(hz)
반환값: 홈짱닷컴 Homzzang.com
7. \b : 백스페이스 (Backspace) 키 누른 효과.
hz = "홈짱닷컴 \bHomzzang.com"
print(hz)
반환값: 홈짱닷컴Homzzang.com
8. \f : 폼 피드 (Form Feed)
예제 준비 중.
9. \ooo : (역슬리시 + 3자리 정수) = 8진수로 표현한 알파벳 .
hz = "\110\157\155\172\172\141\156\147\56\143\157\155"
print(hz)
반환값: Homzzang.com
10. \xhh : (역슬리시 + x + 16진수) = 16진수로 표현한 알파벳 .
hz = "\x48\x6F\x6D\x7A\x7A\x61\x6E\x67\x2E\x63\x6F\x6D"
print(hz)
반환값: Homzzang.com
문자열 메서드 종류
모든 문자열 메서드는 새 값을 반환 . (※ 원래 문자열 변경 X)
capitalize()
첫 번째 문자를 대문자로 변환.
casefold()
문자열을 소문자로 변환.
center()
중심 문자열을 반환.
count() ★★
지정 값이 문자열에 포함된 횟수 반환.
encode()
문자열의 인코딩 된 버전을 반환.
endswith()
문자열이 지정된 값으로 끝나면 true 반환.
expandtabs()
문자열의 탭 크기를 설정.
find() ★★
문자열에서 지정 값 검색 후 그 색인번호를 반환.
※ index()와 유사하나, 다른 점은 없는 값 경우 -1 반환.
format() ★★
문자열에 지정된 값을 형식화.
format_map()
문자열에 지정된 값을 형식화.
index() ★★
문자열에서 지정 값을 검색 후, 그 색인번호를 반환.
※ find() 함수와 유사하나, 다른 점은 없는 값 경우 에러 발생 .
isalnum() ★
문자열의 모든 문자가 영숫자이면 True 반환.
isalpha() ★
문자열의 모든 문자가 알파벳이면 True 반환.
isdecimal()
문자열의 모든 문자가 10 진수이면 True 반환.
isdigit()
문자열의 모든 문자가 숫자이면 True 반환.
isidentifier()
문자열이 식별자이면 True 반환.
islower() ★
문자열의 모든 문자가 소문자이면 True 반환.
※ isupper()의 반대.
isnumeric()
문자열의 모든 문자가 숫자이면 True 반환.
isprintable()
문자열의 모든 문자가 인쇄 가능한 경우 True 반환.
isspace()
문자열의 모든 문자가 공백이면 True 반환.
istitle()
문자열이 제목의 규칙을 따르는 경우 True 반환.
isupper() ★
문자열의 모든 문자가 대문자이면 True 반환.
※ islower()의 반대.
join() ★★
지정 문자열 끝에 반복 가능 요소를 결합. ※ split()의 반대.
ljust()
문자열의 왼쪽 정렬 버전을 반환.
lower() ★
문자열을 소문자로 변환.
※ upper()의 반대.
lstrip() ★
문자열의 왼쪽 공백 제거된 버전 반환.
maketrans()
번역에 사용할 번역 테이블을 반환.
partition()
문자열이 세 부분으로 나뉘어 진 튜플을 반환.
replace() ★★
지정된 값이 지정된 값으로 대체되는 문자열을 반환.
rfind() ★
문자열에서 지정된 값을 검색하고 발견된 마지막 위치 반환.
rindex()
문자열에서 지정된 값을 검색하고 발견된 마지막 위치 반환.
rjust()
오른쪽 정렬된 문자열 버전 반환.
rpartition()
문자열이 세 부분으로 나뉘어 진 튜플을 반환.
rsplit()
지정된 구분 기호에서 문자열 분할하고 목록 반환.
rstrip() ★
문자열의 오른쪽 공백 제거된 버전 반환.
split() ★★
지정된 구분 기호에서 문자열을 분할하고 목록을 반환.
※ join()의 반대.
splitlines()
줄 바꿈시 문자열을 분할하고 목록을 반환.
startswith()
문자열이 지정된 값으로 시작하면 true 반환.
strip() ★
문자열의 트리밍 된 버전을 반환.
swapcase()
대소문자를 교환하고 소문자는 대문자가되고 그 반대도 마찬가지.
title() ★
각 단어의 첫 문자를 대문자로 변환.
translate()
번역된 문자열을 반환.
upper() ★
문자열을 대문자로 변환.
※ lower()의 반대.
zfill()
시작 부분에 지정된 수의 0 값으로 문자열을 채움.
PS.
1.
Python Shell에서 문자열 입력 후,
. (점) 찍으면 선택 가능한 메서드 리스트 뜸.
2.
dir(str) 명령어 : 문자열 메서드 리스트 확인.
※ __method_name__ 형태의 메서드는 'Magic Mathod'라 함.
3.
특정 문자열 메서드 사용법 확인.
(예): title() 메서드 사용법 확인
help(str.title)
문자열 반복
* (곱셈 연산자) 이용.
a = "H"
print(a * 5)
결과값: HHHHH
주소 복사
랜덤 이동
최신댓글