파이썬 f 문자열 포매팅
지난번 format 함수에 대해 알아봤는데
이어서 오늘은 파이썬 문자열 포매팅 과 문자열 함수 에 대해 알아보겠습니다.
파이썬 3.6버전 이후로는 f 문자열 포매팅 기능을 사용할수 있다고 합니다.
혹시라도 본인이 사용하는 파이썬 버전이 3.6 버전 미만이라면 주의해야 합니다
>>> name = '스마트'
>>> age = 40
>>> f'저의 이름은 {name}입니다. 나이는 {age}입니다.'
'저의 이름은 스마트입니다. 나이는 40입니다.'
위 예처럼 문자열 앞에 f 를 붙이면 f 문자열 포매팅 기능을 사용할수 있습니다
name, age 같은 변수를 생성후 그 값을 참조 할 수 있습니다.
표현식 지원
>>> age = 30
>>> f'저는 올해 {age+1}살이 되었습니다.'
'저는 올해 31살이 되었습니다.'
- 표현식 : 문자열 변수 안에서 변수와 +. – 등 의 수식을 함께 사용하는 것
딕셔너리
>>> d = {'name':'스마트', 'age':40}
>>> f'저의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
'저의 이름은 스마트입니다. 나이는 40입니다.'
- 딕셔너리 : key 와 value 를 한쌍으로 가지는 자료형
정렬
>>> f'{"Hello":<10}' # 왼쪽 정렬
'Hello '
>>> f'{"hello":>10}' # 오른쪽 정렬
' hello'
>>> f'{"hello":^10}' # 가운데 정렬
' hello '
공백 채우기
>>> f'{"hello":=^10}' # 가운데 정렬하고 '=' 문자로 공백 채우기
'==hello==='
>>> f'{"hello":!<10}' # 왼쪽 정렬하고 '!' 문자로 공백 채우기
'hello!!!!!'
소수점 표현
>>> x = 3.1456267
f'{x:0.5f}' # 소수점 5자리까지만 표현
'3.14563'
>>> f'{x:10.5f}' # 소수점 5자리까지 표현하고 총 자리수를 10으로 맞춤
' 3.14563'
{ } 문자 표시
>>> f'{{ or }}'
'{ or }'
문자열 내장 함수
문자열 자료형의 자체 함수 – 문자열 변수 뒤에 ‘.’를 붙이고 함수 이름을 써줍니다.
문자의 갯수(count)
>>> a = "rabbit"
>>> a.count('b')
2
문자열 중 문자 ‘b’ 의 개수를 리턴합니다.
문자의 위치 1(find)
>>> a = "Language is the key to unlocking happiness"
>>> a.find('g')
3
>>> a.find('i')
9
문자열 중 문자 ‘g’, ‘i’ 의 첫번째 위치를 반환합니다.
찾는 문자나 문자열이 존재하지 않는다면 -1 을 반환합니다.
- 파이썬은 0 부터 숫자가 시작되므로 g 의 위치는 4 가 아닌 3 이 됩니다.
문자의 위치 2(index)
>>> a.index('t')
12
>>> a.index('x')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
find 와 마찬가지로 문자열 중 문자의 첫번째 위치를 반환합니다.
하지만 찾는 문자나 문자열이 존재하지 않는다면 오류를 반환합니다.
문자열 삽입(join)
>>> ",".join('python')
'p,y,t,h,o,n'
문자열 python의 각각의 문자사이에 ‘,’ 를 삽입합니다.
join 함수는 문자열 뿐 아니라 리스트나 튜플에서도 입력으로 사용할수 있습니다.
join 의 리스트 사용 예
>>> ",".join(['p', 'y', 't', 'h', 'o', 'n'])
'p,y,t,h,o,n'
소문자 -> 대문자(upper)
>>> a = "hello"
>>> a.upper()
'HELLO'
대문자 -> 소문자(lower)
>>> a = "HELLO"
>>> a.lower()
'hello'
왼쪽 공백 삭제(lstrip)
>>> a = " hello "
>>> a.lstrip()
'hello '
문자열의 가장 왼쪽의 한 칸 이상의 공백을 모두 지웁니다.
오른쪽 공백 삭제(rstrip)
>>> a.rstrip()
' hello'
문자열의 가장 오른쪽의 한 칸 이상의 공백을 모두 지웁니다.
양쪽 공백 삭제(strip)
>>> a.strip()
'hello'
문자열 양쪽의 한 칸 이상의 공백을 모두 지웁니다.
문자열 변경(replace)
>>> a = "Language is the key to unlocking happiness"
>>> a.replace("Language", "Python")
'Python is the key to unlocking happiness'
replace(원본 문자열, 타켓 문자열)
문자열 나누기(split)
>>> a.split()
['Language', 'is', 'the', 'key', 'to', 'unlocking', 'happiness']
>>> b = "p:y:t:h:o:n"
>>> b.split(":")
['p', 'y', 't', 'h', 'o', 'n']
a.split() 처럼 괄호안에 아무 값도 없을 경우 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나누어 줍니다.
b.split(“:”) 처럼 괄호안에 특정 값이 있을 경우에는 괄호안의 값을 기준으로 해서 문자열을 나누어 줍니다.
이렇게 나누어진 값들은 리스트에 들어가게 됩니다.
