format( ) 함수
format( ) 함수는 문자열이 가지고 있는 함수이다. 중괄호 { } 를 포함한 문자열 뒤에 .format( ) 함수를 사용하는데, 중괄호의 개수와 format 함수 괄호 안 매개변수의 개수는 반드시 같아야 한다.
위의 사진을 보면 중괄호의 개수가 맞으면 잘 출력이 되는 것을 알 수 있다.
간혹 .format( ) 괄호 안의 인자가 중괄호 { } 의 개수보다 많은 경우에는 먼저 입력된 것만 출력되는 것을 알 수 있다.
가장 아래처럼 부족할 경우에는 에러가 발생한다.
이러한 형태로 함수를 사용하면 앞쪽에 있는 문자열의 { } 기호가 format( ) 함수 괄호 안에 있는 매개변수로 차례로 대치되면서 숫자가 문자열이 된다.
int_or_string_a = 100
print(type(int_or_string_a), int_or_string_a)
maybe_str = '{}'.format(int_or_string_a)
print(type('{}'.format(maybe_str)),maybe_str)
<class 'int'> 100
<class 'str'> 100
100은 정수지만 format( ) 함수를 거치는 순간 문자열로 변환되는 것을 확인할 수 있다.
format이라는 함수는 { } 기호를 format의 괄호 안에 있는 매개변수로 대체하는 것뿐이기 때문에 { } 기호 앞뒤 혹은 { } 기호와 { } 사이에 다양한 문자열을 넣을 수 있다.
# 참고 문자열 포맷 코드
print('%d 는 decimal, 정수가 입력된다.' %100)
print(' %f는 float, 부동소수점이 입력된다.'% 100)
print(' %s는 string, 문자열이 입력된다.' %'럭키')
a = 100
print('%d 는 변수대입도 가능하다.' %a)
# 정수
output_a = '{:d}'.format(52)
#특정 칸에 출력하기
output_b = '{:5d}'.format(52) #5칸
output_c = '{:10d}'.format(52) #10칸
#빈칸을 0으로 채우기
output_d = '{:05d}'.format(52) #양수
output_e = '{:05d}'.format(-52)
print('#기본')
print(output_a)
print()
print('#특정 칸에 출력하기')
print(output_b)
print(output_c)
print()
print('#빈칸을 0으로 채우기')
print(output_d)
print(output_e)
output_a의 경우 {:d}가 왔는데, 앞서 설명한 decimal로 매개변수로 정수만 올 수 있다.
output_b와 c는 특정 칸에 맞춰서 숫자를 출력하는 형태로, {:5d}의 경우 5칸을 잡고 뒤에서부터 52라는 숫자를 채운다. 52 앞에 3칸의 공백이 존재한다. {:10d}의 경우 10칸을 잡고 뒤에서부터 52를 채우기 때문에 8칸의 공백이 있다.
output_d와 e는 빈칸을 0으로 채우는 형태로, 앞서 b와 c와 같이 뒤에서부터 52라는 숫자를 채운 후에 앞의 빈 공백을 0으로 채운다. 부호가 있을 경우에는 맨 앞자릴 부호로 채우고 나머지 자리를 0으로 채우게 된다.
# 기호와 함께 출력하기
output_f = '{:+d}'.format(52) #양수
output_g = '{:+d}'.format(-52) #음수
output_h = '{:-d}'.format(-52) #음수 + 음수부호
output_i = '{: d}'.format(52) #양수: 기호 부분 공백
output_j = '{: d}'.format(-52) #음수: 기호 부분 공백
print('# 기호와 함께 출력하기')
print(output_f)
print(output_g)
print(output_h)
print(output_i)
print(output_j)
# 조합하기
output_k = '{:+5d}'.format(52)
output_l = '{:+5d}'.format(-52)
output_m = '{:=+5d}'.format(52)
output_n = '{:=+5d}'.format(-52)
output_o = '{:+05d}'.format(52)
output_p = '{:+05d}'.format(-52)
print('# 조합하기')
print(output_k) # 기호를 뒤로 밀기: 양수
print(output_l) # 기호를 뒤로 밀기: 음수
print(output_m) # 기호를 앞으로 밀기: 양수
print(output_n) # 기호를 앞으로 밀기: 음수
print(output_o) # 0으로 채우기: 양수
print(output_p) # 0으로 채우기: 음수
# 기호와 함께 출력하기
+52
-52
-52
52
-52
# 조합하기
+52
-52
+ 52
- 52
+0052
-0052
기호 공백 조합시 = 등호 기호를 앞에 붙일 수 있다.
대소문자 바꾸기: upper( ) 와 lower( )
upper( )는 모두 대문자로, lower( )는 모두 소문자로 변환시켜주는데 원본은 변하지 않는다.
원본을 변화시키지 않는 함수를 비파괴적 함수라 하고, 이와 반대되는 경우를 파괴적 함수라 한다.
문자열 양옆의 공백 제거하기: strip( )
input_a = '''
안녕하세요
만나서 반갑습니다
'''
print(input_a)
print('-'*30)
print(input_a.strip())
# lstrip(): 문자열 왼쪽 공백 제거
# rstrip(): 문자열 오른쪽 공백 제거
안녕하세요
만나서 반갑습니다
------------------------------
안녕하세요
만나서 반갑습니다
이러한 기능을 trim 이라고도 부른다. 공백을 제거할 때는 strip과 trim을 활용한다.
문자열의 구성 파악하기: isOO( )
- isalnum( ): 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인
- isalpha( ): 문자열이 알파벳으로만 구성되어 있는지 확인
- isidentifier( ): 문자열이 식별자로 사용할 수 있는 것인지 확인
- isdecimal( ): 문자열이 정수 형태인지 확인
- isdigit( ): 문자열이 숫자로 인식될 수 있는 것인지 확인
- isspace( ): 문자열이 공백으로만 구성되어 있는지 확인
- islower( ): 문자열이 소문자로만 구성되어 있는지 확인
- isupper( ): 문자열이 대문자로만 구성되어 있는지 확인
문자열 찾기: find( )와 rfind( )
문자열 내부에 특정 문자가 어디에 위치하는지 확인할 때 find( ) 함수와 rfind( ) 함수를 사용
find( ): 왼쪽부터 찾아서 처음 등장하는 위치를 찾음.
rfind( ): 오른쪽부터 찾아서 처음 등장하는 위치를 찾음.
output_a = '안녕안녕하세요'.find('안녕') # 왼쪽에서부터 찾음
print(output_a)
output_b = '안녕안녕하세요'.rfind('안녕') # 오른쪽에서부터 찾음
print(output_b)
0
2
문자열 포함 여부 확인: in 연산자
문자열 내부에 어떤 문자열이 있는지 확인하려면 in 연산자를 사용하며 출력은 True, False로 나타난다.
문자열 자르기: split( )
문자열을 특정한 문자로 자를 떄는 split( ) 함수를 사용한다.
실행 결과는 리스트로 출력된다. a의 경우 공백을 기준으로 문자열을 나누었고, b는 컴마를 기준으로 구분했다.
😁
출처:
혼자공부하는파이썬(윤인성) https://www.youtube.com/watch?v=IUXMgyiFBIU&list=PLBXuLgInP-5kr0PclHz1ubNZgESmliuB7
'Data Scientist' 카테고리의 다른 글
파이썬(리스트: 리스트 연산자, append, insert, extend, del, pop, remove, clear, in/not in) (0) | 2020.03.17 |
---|---|
파이썬(불 자료형과 if 조건문) (0) | 2020.03.16 |
파이썬(변수와 입력: 복합대입 연산자, input( ), int/float/str 함수) (0) | 2020.03.13 |
파이썬(숫자: 사칙연산, 정수나누기, 나머지, 제곱 연산자) (0) | 2020.03.12 |
파이썬(자료형과 문자열: 자료, escape 문자, 문자열(연결/반복/선택[인덱싱, 슬라이싱], 길이) ) (0) | 2020.03.11 |