영감이 번뜩이는 삶

[파이썬 입문] 자료형 - 포매팅2, 문자열 함수 본문

Python 도전기

[파이썬 입문] 자료형 - 포매팅2, 문자열 함수

돌굴러가유피하세유 2022. 11. 10. 21:00
반응형

지난 글에 이어서 포매팅에 대해 공부합니당

'문자열 내에 {a,b,…}'.format(A,B,…) 과 같은 형식으로 사용하는 format 함수가 있다.
예시를 참고하자!

더보기

>>> '나는 SK하이닉스 {0}주를 보유하고 있다.'.format(5)
'나는 SK하이닉스 5주를 보유하고 있다.'

>>> '나는 SK하이닉스 {0}주를 보유하고 있다.'.format('다섯')
'나는 SK하이닉스 다섯주를 보유하고 있다.'

>>> a = 5
>>> '나는 SK하이닉스 {0}주를 보유하고 있다.'.format(a)
'나는 SK하이닉스 5주를 보유하고 있다.'

>>> b = 3
>>> '나는 SK하이닉스 {0}주를 보유하고 있다가 {1}주를 매도했다.'.format(a+1,b-1) #각 변수에 간단한 수식 적용
'나는 SK하이닉스 6주를 보유하고 있다가 2주를 매도했다.'

>>> '나는 SK하이닉스 {0}주를 보유하고 있다가 {c}주를 추가매수했다.'.format(b,c=4)
'나는 SK하이닉스 3주를 보유하고 있다가 4주를 추가매수했다.'

 

format 함수를 이용할때
정렬, 공백 대신 문자 넣기, 소수점 표현 등도 가능함
역시나 예시로 이해하자

더보기

>>> '{0:<10}'.format('left') #왼쪽정렬
'left      '

>>> '{0:^10}'.format('center') #가운데정렬
'  center  '

>>> '{0:>10}'.format('right') #오른쪽정렬
'     right'

>>> '{0:-^11}'.format('절취선') #-로 공백 채우기 (채울 문자를 정렬코드 사이에)
'----절취선----'

>>> a=4.141592 #소수점 표현 (포맷코드 사용과 동일함)
>>> '{0:.4f}'.format(a-1)
'3.1416'

>>> "format함수에서 중괄호를 표현하려면 '{{','}}'를  {0}개씩 붙여서 사용한다.".format('두') #중괄호 기호 표현
"format함수에서 중괄호를 표현하려면 '{','}'를  두개씩 붙여서 사용한다."

 

파이썬 v3.6 이후로 사용 가능한 f 문자열 포매팅 기능이 있다.

더보기

>>> 종목 = 'LG에너지솔루션'
>>> f'나는 {종목}을 2주 보유하고 있다.'
'나는 LG에너지솔루션을 2주 보유하고 있다.'

>>> f'{종목:!<15}' #왼쪽정렬+공백 채우기
'LG에너지솔루션!!!!!!!'

>>> a = 4.141592 #변수에 수식+소수점 표현+중괄호 기호 표현
>>> f'{{{a-1:.4f}}}'
'{3.1416}'

 

 

마지막으로 문자열 자료형에서 사용 가능한 함수에 대해 알아보자
기본적으로 함수는 변수.함수() 와 같은 형태로 사용한다.
함수는 표를 참고하시길!

함  수 기  능
count 문자열 내의 특정 문자 개수 세기
find 문자열 내의 특정 문자 위치 찾기
index 문자열 내의 특정 문자 위치 찾기, 없으면 오류 발생
join 함수가 받은 값에 문자열 삽입
upper 소문자 → 대문자
lower 대문자 → 소문자
lstrip 문자열 왼쪽의 연속된 공백 삭제
rstrip 문자열 오쪽의 연속된 공백 삭제
strip 문자열 양쪽의 연속된 공백 삭제
replace 함수가 받은 값을 문자열 내에서 찾아 바꿈
split 함수가 받은 값을 기준으로 문자열을 나눔

 

그냥 보고 넘어가면 기억에 안남으니까 예시보고 실제로 Shell 입력하고 결과도 보고~

더보기

>>> a = 'apple' #count 함수
>>> a.count('p') #대소문자 구분함
2

>>> a.find('l') #find 함수, 첫글자는 0위치부터!
3
>>> a.find('f') #해당 문자가 없으면 -1 반환
-1

>>> a.index('l') #find 함수
3
>>> a.index('f') #해당 문자가 없으면 오류 발생
Traceback (most recent call last):
  File "<pyshell#62>", line 1, in <module>
    a.index('f')
ValueError: substring not found

>>> ', '.join(a) #join 함수
'a, p, p, l, e'

>>> a.upper() #upper 함수
'APPLE'

>>> b = f'{a: ^15}' #f 문자열 포매팅
>>> b.lstrip() #lstrip 함수
'apple     '
>>> b.strip() #strip 함수
'apple'

>>> c = "Apple is AAPL"
>>> c.replace('Apple',"Apple's ticker") #replace 함수, replace(대상 문자열, 대체할 문자열)
"Apple's ticker is AAPL"

>>> c.replace('Apple',"Apple's ticker").split( ) #replace 함수+split 함수, 왼쪽부터 차례대로 적용됨
["Apple's", 'ticker', 'is', 'AAPL'] #split된 문자열은 리스트화

 

확실히 직접 Shell에 이건 어떻게 될까 하면서 쳐보는게 큰 도움이 된다...랄까?
예전에 학교에서 수업 들을땐 이론 따로, 실습 따로여서 실용적이지 못했지만 혼자 공부하니까 이거저거 다 해볼 수 있어서 넘좋

반응형
Comments