- 문자열 일부 바꾸기
- s.replace('arr1', 'arr2')로 사용.
word = 'python is great'
word.replace('python', 'c')
print(word) #c is great
- 만약 문자열이 일치하지 않는 경우 ->
word.replace('bython', 'c')
print(word) # python is great
=> 바꿀 문자를 찾지 못하고 그대로 출력된다.
응용 => 문자열 A가 있을시에 A를 문자열 B로 바꾸는 프로그램을 만들 때 A가 있는지부터 검사할 필요 없이 바로. replace('A', 'B') 하면 된다.
- 문자 바꾸기
- translate(str.maketrans('aeiou', '12345'))으로 사용.
- table = str.maketrans('aeiou', '12345')), apple.translate(table) 으로도 사용 가능.
word = 'python is great'
word.translate(str.maketrans('pt', '12'))
print(word) # 1y2hon is grea2
- 문자열 분리하기
'arr1'.split() 사용
# 그냥 빈칸만 있을 때 구분
'apple pear grape pineapple orange'.split()
# ['apple', 'pear', ..., 'orange']
# 컴마도 있을 때 구분
'apple, pear, grape, pineappple, orange'.split(', ')
# ['apple, 'pear', ..., 'orange']
- 문자열 연결하기
'문자열 사이 들어갈문자'.join(['arr1', 'arr2', ...]) 형태로 사용.
# 그냥 문자열을 합칠 때
' '.join(['apple', 'pear', 'grape', 'pineapple', 'orange'])
# 'apple pear grape pineapple orange'
# 문자열 사이에 특정 문자를 넣을 때
'-'.join(['apple', ..., 'orange'])
# 'apple-pear-grape-pineapple-orange'
- 소문자 -> 대문자 (모든 소문자는 대문자로, 대문자는 그대로)
.upper() 사용
'python'.upper()
# PYTHON
- 대문자 -> 소문자 (위의 규칙과 동일)
.lower() 사용
'PYTHON'.lower()
# python
- 좌우 특정 문자 삭제하기
# 문자 왼쪽에 있는 특정 문자 삭제
' python '.lstrip()
# 'python ', 왼쪽 공백만 삭제
# 문자 오른쪽 삭제
' python '.rstrip()
# ' python', 오른쪽 공백만 삭제
# 양쪽 문자 삭제
' python '.strip()
# 'python', 양쪽 공백 삭제
# 괄호 안에 특정 문자 넣어주면 해당 문자 삭제
# '문자열1'.strip(',.') 이면
# 문자열 양쪽에서 ','와 '.' 문자 삭제
- 문자열 정렬하기
ljust(길이) -> 좌측 정렬, 남는 공간 공백으로, 만약 길이가 현재 문자열 길이보다 짧으면 실행 x
rjust(길이) -> 우측 정렬
center(길이) -> 가운데 정렬, 남는 공백 길이가 홀수면 왼쪽에 공백 한 칸이 더 들어감
# 우측정렬
'python'.rjust(10)
# ' python'
# 좌측정렬
'python'.ljust(10)
# 'python '
# 가운데정렬
'python'.center(10)
# ' python '
- 문자열 왼쪽에 0 채우기
zfill(길이) 형태로 사용
# 자릿수 앞에 0을 채워야 할 때
'35'.zfill(4)
# '0035'
# 그냥 문자열도 가능(당연하지만)
'hello'.zfill(10)
# '0000hello'
- 문자열 위치 찾기
특정 문자열의 인덱스를 찾을 때(왼쪽에서부터 찾음)
-> find('찾을 문자열')
오른쪽에서부터 찾을 때
-> rfind('찾을 문자열')
* 없을 시 -1 반환
또는
-> index('특정 문자열')
-> rindex('특정 문자열')
* 없을 시 에러 발생
- 문자열 개수 세기
count('특정 문자열')
- 문자열 만들기
1. 문자열 서식 지정자
2. 문자열 포메팅(f-string)
1 - 문자열 서식 지정자
# 문자열 넣기
'I am %s' % 'james' # 'I am james'
# 숫자 넣기
'This watch is %d dollars' # 'This watch is 5 dollars'
# 소숫점 표현하기
'%f' % 3.5 # '3.500000', 소숫점 이하 6자리까지 표현
'%.2f' % 3.5 # '3.50', .nf 형태 -> n자리까지 표현
# 문자열 정렬하기
'%10s' % 'python' # ' python'
# 왼쪽 정렬
'%-10s' % 'python' # 'python '
# 정수 자릿수 맞추기
'%5d' % 15 # ' 15'
'%5d' % 100 # ' 100'
# 소숫점으로 자릿수와 소숫점 이하 자릿수 표현하기
'%10.2f' % 2000.3 # ' 2000.30'
# 한 번에 여러 개 서식 지정자 사용하기
'Today is %d %s' % (3, 'April') # 'Today is 3 April'
2 - 문자열 포매팅
- 서식 지정자보다 더 간단한 방법이라는 문자열 포매팅이다.
- {} 안에 포매팅을 지정하고, format메서드로 값을 넣는다.
'hello, {0}'.format('world!') # 'hello, world!' 출력
# 이처럼 문자열 안에 {}을 넣고, 인덱스를 지정한다.
# format()부분에는 {}부분에 넣을 값을 지정한다.
# 값 여러 개 넣기
'Hello, {0} {2} {1}'.format('Python', 'Script', 3.6) # 'Hello, Python 3.6 Script'
'{0} {0} {1} {1}'.format('Python', 'Script') # 'Python Python Script Script'
# 인덱스 생략 -> 지정한 순서대로 값이 들어감
'Hello, {} {} {}'.format('Python', 'Script', 3.6) # 'Hello, Python Script 3.6'
# 또는 이름 지정 가능.
'Hello, {language} {version}'.format(language = 'Python', version = 3.6) # 'Hello, Python 3.6'
# Python 3.6부터는 앞에 f를 붙이고 중괄호 안에 바로 변수 입력 가능
language = 'Python'
version = 3.6
print(f'Hello, {language} {version}') # Hello, Python 3.6
# 문자열 정렬하기
print('{0:<10}'.format('Python')) # Python
# '{인덱스 : 방향 길이}'.format() 형식으로 작성
# 인덱스는 없을 시 생략 가능
# 숫자 개수 맞추기
# 1. 서식 지정자
print('%03d' % 15) # '015' , 문자열로 나옴
# 2. format메서드
print('{:03d}'.format(15)) # 015, 정수로 나옴
# 실수
print('{0:08.2f}'.format(150.37)) # 00150.37
# 결론 : format은 '{인덱스 : 채우기 정렬 길이 .자릿수}'.format 형식으로 사용.
print('{:0<10}'.format(15)) # 1500000000
# 팁, 금액에서 천 단위로 ','을 넣는 것을 format함수를 이용해 할 수 있다.
print(format(1493500, ',')) # 1,493,500
'Programming Language > Python 공부' 카테고리의 다른 글
[Pylearn] 1222 / 딕셔너리 응용 (0) | 2021.12.22 |
---|---|
[Python] 1210 / file 입출력, 클래스 #1 (0) | 2021.12.10 |
[Python] 1205 List Comprehension(리스트 표현식) 및 문자열, 백준 2869번 (0) | 2021.12.06 |
[Python] 1202 (0) | 2021.12.02 |
[Python] 1201 공부한 점들 (0) | 2021.12.01 |