문자열 처리
작성 완료
- format 함수
- join 함수
- replace 함수
- split 함수
- upper 함수
- str.isupper()
- lower 함수
- str.islower()
- count 함수
- chr 함수
- ord 함수
-
문자열을 포매팅(formatting)하는데 사용
-
포매팅: 문자열의 원하는 위치에 특정 변수를 삽입
-
아래 예제를 보자
'이름:{},나이:{},성별:{}'.format('홍길동','21','남')
-
순서대로 홍길동
, 21
, 남
이 {}
에 삽입됨
-
구구단도 쉽게 출력할 수 있음
i = 2
for j in range(1, 10):
print('{} X {} = {}'.format(i, j, i*j))
-
알고리즘 문제를 풀다보면 특정 소수점 자릿수까지 출력을 요구할 때가 있음
-
계산 결과를 소수점 셋째 자리 까지 표현하려면?
a = 10
b = 3
a / b
-
소수점 셋째 짜리 까지 표현하고 싶음
-
format 함수 사용!
a = 10
b = 3
print('{:.3f}'.format(a / b))
-
round 함수도 되는데?
-
round(x, a)
--> x를 소수점 a번째 까지 나타냄
a = 10
b = 3
round(a / b, 3)
-
아래와 같은 경우는?
a = 10
b = 2
a / b
-
format 함수
a = 10
b = 2
print('{:.3f}'.format(a / b))
-
round 함수
a = 10
b = 2
round(a / b, 3)
-
format 함수는 소수점 셋째 자리까지 나타낸 반면 round 함수는 첫째 자리까지 나타냄
- round 함수를 사용할 때 주의할 점
-
파이썬에서는 사사오입의 원칙을 따라 반올림할 자리가 5이면 반올림을 할 때 짝수면 내림, 홀수면 올림 한다
round(2.5)
round(-1.5)
-
오사오입의 원칙으로 반올림 하려면? --> 함수를 따로 만들자
def round2(number):
if number >= 0:
if number - int(number) >= 0.5:
a = 1
else:
a = 0
return int(number) + a
else:
if int(number) - number > 0.5:
a = -1
else:
a = 0
return int(number) + a
round2(2.5)
round2(-1.5)
-
사사오입의 원칙으로 반올림을 하는 이유는 데이터의 대부분이 .5로 끝나는 자료라면 이를 반올림하면 0.5만큼의 오차가 생기기 때문
- 결론: 원하는 자릿수 까지 나타내려면 round 함수 대신 format 함수를 쓰자
-
문자열로 이루어진 리스트를 기준 문자열로 합쳐 문자열로 만듦
-
'구분자'.join(list)
-
구분자
에는 문자열
, list
에는 문자열을 원소로 가지는 리스트
가 들어감
a = ['12', '45', '48']
'-'.join(a)
''.join(a)
-
특정 문자를 다른 문자로 대체
-
'문자열'.replace('기존 문자', '바꿀 문자')
a = 'hello world'
a.replace('h', 'H')
a.replace('', '!')
-
문자열에서는 빈칸도 하나의 문자로 취급
a = '!h!e!l!l!o! !w!o!r!l!d!'
a.split('!')
a = 'hello world'
a.upper()
-
str이 대문자로만 이루어져 있으면 True를 아니면 False를 반환
string = 'ABC'
string2 = 'AbC'
string.isupper()
string2.isupper()
a = 'HELLO WORLD'
a.lower()
-
str이 소문자로만 이루어져 있으면 True를 아니면 False를 반환
string = 'abc'
string2 = 'aBc'
string.islower()
string2.islower()
a = 'HELLO WORLD'
a.count('L')
a.count('L', 0, 9)
a.count('L', 0, 10)
chr(65)
ord('A')