본문 바로가기

Data Scientist

파이썬(format함수, 문자열 포맷코드, upper/lower, strip, isOO, find/rfind, in, split함수)

반응형

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

https://wikidocs.net/13

불러오는 중입니다...

 

반응형