Programming Language/Python 공부

[Pylearn] 1213 / 문자열 응용하기

hanseongjun 2021. 12. 13. 22:06
728x90
반응형

- 문자열 일부 바꾸기

- 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
728x90
반응형
LIST