문자열 연산 / 문자열 메소드 + 퀴즈 / 문자열 포매팅
문자열 자료형의 연산
-
연결연산자 ( + ) / 반복연산자 ( * )
-
선택연산자 (인덱싱)
- 문자열 : 시퀀스 자료형 > 인덱스 존재 > 인덱스로 값의 접근 가능
-
범위 선택 연산자 (슬라이싱)
-
연산자의 활용
-
역순 정렬
a = '안녕하세요' print(a[::-1]) ### 출력 ### 요세하녕안
-
슬라이싱, 연결
a = '12345' b = '34567' c = a[0:3] + b[1:] print(c) ### 출력 ### 1234567
-
스텝 활용
a = '1,2,3,4,5,6,7,8,9' print(a[::2]) # -> 쉼표 건너뛰고 출력 ### 출력 ### 123456789
-
문자열 메소드
-
파이썬의 문자열 자료형은 변경 불가능 > 직접 문자열 수정하는 방식이 아닌 변경된 문자를 반환하는 방식으로 메소드 사용
-
-
upper()
: 문자열을 대문자로 변경 -
lower()
: 문자열을 소문자로 변경 -
swapcase()
: 대문자는 소문자로, 소문자는 대문자로 변경 -
capitalize()
: 전체 문자 중 첫 문자만 대문자로 변경 -
title()
: 각 단어의 첫 문자를 대문자로 변경 -
len()
: 문자열의 길이 반환 -
startwith()
: () 안 문자열로 시작하는지 판단 -
endwith()
: () 안 문자열로 끝나는지 판단 -
count()
: () 안 문자열이 몇번 등장하는지 반환 -
replace(old, new, [count])
: 문자열 변경-
old : 현재 문자열에서 변경하고 싶은 문자
-
new : 새로 바꿀 문자
-
count : 변경할 횟수, 입력하지 않으면 old 문자열 전체를 변경, 기본값 = 1 (전체를 의미)
-
-
-
-
strip()
: 문자열 양쪽 끝을 잘라냄(기본은 공백 있음)a = ' abc ' print(a) print(a.strip()) ### 출력 ### abc ### abc
-
lstrip()
: 문자열 왼쪽 끝을 잘라냄 -
rstrip()
: 문자열 오른쪽 끝을 잘라냄
-
-
-
split()
: 문자열을 구분자로 분리해 리스트로 반환a = 'abcde' print(a.split('c')) ### 출력 ### ['ab', 'de']
-
splitlines()
: 문자열을 라인 단위로 분리해 리스트로 반환a = """abc def""" print(a.splitlines()) ### 출력 ### ['abc', 'def']
-
-
-
index()
: 해당 문자열의 인덱스 반환 (없으면 에러) -
find()
: 해당 문자열의 인덱스 반환 (없으면 -1 반환)
-
Quiz) 특정 문자 뽑아내 출력하기
s = “Today is December 31, 2021”
31만 뽑아내 출력하기
-
split 함수 사용 > 쉼표를 기준으로 분리한 후 첫 번째 값만 출력
s = "Today is December 31, 2021" print(s.split(',')) temp = s.split(',')[0] print(temp) print(temp.split(' ')) result = temp.split(' ')[3] print(result) ### 출력 ### ['Today is December 31', ' 2021'] ### Today is December 31 ### ['Today', 'is', 'December', '31'] ### 31
-
find / index 함수 활용 가능
s = "Today is December 31, 2021" print(s[18:20]) ### 출력 > 31
문자열 포매팅
-
변수를 활용하여 문자열을 생성할 때 사용
-
기본 양식이 정해져있고, 특정 값만 변경할 때 사용
-
단체 문자나 이메일과 같이 중복된 내용들을 쉽게 변경하여 사용 가능
-
중괄호 안에
format()
의 내용 삽입a = '{}, World!'.format('Hello') print(a) print("{} + {} = {}".format(1, 2, 3)) ### 출력 ### Hello, World! ### 1 + 2 = 3
-
여러개를 사용하려면 순서대로 값 입력
a = '{}{}{}'.format('Hello', ', ', 'World!') print(a) ### 출력 > Hello, World!
-
중괄호에는 문자열이 아닌 다른 자료형이 올 수 있음
a = '{}, {}, {}'.format(1, (1, 2), [1, 2]) print(a) ### 출력 ### 1, (1, 2), [1, 2]
-
중괄호에 순서를 적어 포매팅 출력 순서 변경 가능
a = "{0}{2}{1}".format("Hello", "~", "World") ### 출력 ### HelloWorld~
-
중괄호에 식별자를 적어 출력 가능
a = "Today is {today}, tomorrow is {tomorrow}".format(today="Friday", tomorrow="Saturday") print(a) ### 출력 ### Today is Friday, tomorrow is Saturday
-
서식지정자 사용
-
%d : 정수 / %f : 실수 / %s : 문자열
-
%f 기본 소수점 이하 6자리, $.1f와 같이 소수점 이하 자리 지정 가능
print("현재 시간은 %d시 입니다." % 1) ### 출력결과 ### 현재 시간은 1시ㅣ 입니다.
-
-
자리 표기 가능
-
f
> 실수 타입으로 변경 -
:0.숫자
> 소수점 자리 수 변경 -
:숫자
> 공백 출력b = '{:0.2}'.format(1/3) c = '{:f}'.format(3) d = '{:2}, {:3}'.format(5, 5) print(b) print(c) print(d) ### 출력결과 ### 0.33 ### 3.000000 ### 5, 5
-