파이썬 문자열 다루기

문자열 포멧팅 / 조작 / 변환 / 공백처리 / 포멧팅

다른 언어에 비해 파이썬 문법은 간단하면서도 직관적입니다.

개발을 하면서 많이 쓰게 되는 문자열을 다루는 기능입니다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
str1 = "kfc, KFC, Kfc"  
tb = str.maketrans('k', '^')
print("--------문자 인덱스")
print("01 : %s-> %s " %  (str1, len(str1))              ) #문자열 길이 구하기
print("02 : %s-> %s " %  (str1, str1.count("f"))        ) #문자 갯수 세기
print("03 : %s-> %s " %  (str1, str1.index("f"))        ) #문자 위치 찾기 
print("04 : %s-> %s " %  (str1, str1.rindex("f"))       ) #문자 위치 찾기(오르쪽에서부터)
print("05 : %s-> %s " %  (str1, str1.find("f"))         ) #문자 위치 찾기 
print("06 : %s-> %s " %  (str1, str1.rfind("f"))        ) #문자 위치 찾기(오르쪽에서부터)
#index: 찾는 문자가 없을때 error
#find: 찾는 문자가 없을때 -1 리턴
print("--------문자 자르기")
print("07 : %s-> %s " %  (str1, str1[5])                ) #문자열 5번째 문자
print("08 : %s-> %s " %  (str1, str1[-2])               ) #문자열 뒤에서 2번째 문자
print("09 : %s-> %s " %  (str1, str1[:3])               ) #문자열 자르기(substring) ~3번째 위치까지 자르기
print("10 : %s-> %s " %  (str1, str1[3:])               ) #3번째 부터 ~
print("11 : %s-> %s " %  (str1, str1[3:6])              ) #3번째부터  ~ 6번째까지 
print("15 : %s-> %s " %  (str1, str1.split(","))        ) #문자 분리 
print("--------문자변환")
print("12 : %s-> %s " %  (str1, str1.upper())           ) #전체 대문자 
print("13 : %s-> %s " %  (str1, str1.lower())           ) #전체 소문자 
print("14 : %s-> %s " %  (str1, str1.capitalize())      ) #첫글자만 대문자 
print("16 : %s-> %s " %  (str1, str1.replace("KFC","AAA"))  ) # 문자 치환하기
str2 = " kfcK   "   
print("17 : %s-> %s " %  (str2, str2.translate(tb))         ) # #문자 바꾸기
print("--------공백처리")
print("18 : %s-> %s " %  (str2, str2.lstrip())              ) # #공백 삭제(왼쪽)
print("19 : %s-> %s " %  (str2, str2.rstrip())              ) # #공백 삭제(오른쪽)
print("20 : %s-> %s " %  (str2, str2.strip())               ) #공백삭제(왼오)
print("21 : %s-> %s " %  (str2, str2.lstrip().lstrip('k'))  ) #공백삭제(왼) 후 문자삭제(왼)
print("22 : %s-> %s " %  (str2, str2.rstrip().rstrip('K'))  ) #공백삭제(오) 후 문자삭제(오)
print("23 : %s-> %s " %  (str2, str2.strip().strip('Kk'))   ) # 공백삭제(왼오)후 문자삭제(왼오)
print("--------")
str3 = ['a','b','c','d']
print("24 : %s(%s) -> %s " %  (str3,type(str3), "---==---".join(str3))  ) #list타입의 문자열을 연결
print("------- 포멧팅")
print("25 : %s " %  1           )  #포멧팅(1문자)
print("26 : %s%% " %  1         )  #포멧팅(1문자)퍼센트를 표시할땐 %2개를 사용
print("27 : %5s " %  1          )  #포멧코드와 같이 쓰기 5칸 공백 후 대입
print("28 : %0.2f " %  21.1257  )  #포멧코드와 같이 쓰기 소수점 2번째까지 표시(3번째 올림)
print("29 : %7.2f " %  21.1257  )  #7.2(전체 7자리 사용) 공백(2자리)+21.13(5자리)
print("30 : %s-> %s " %  (1,2)  ) #포멧팅 2개이상일때 튜플타입()으로
print("--------")
print("31 : {0:>5}".format(1), "길이", len("{0:>5}".format(1))    )  #왼쪽 공백
print("32 : {0:<5}".format(1), "길이", len("{0:<5}".format(1))    )  #오픈쪽 공백
print("33 : {0:^5}".format(1), "길이", len("{0:^5}".format(1))    )  #가운데(왼오공백)
print("34 : {0:-^5}".format(1), "길이", len("{0:-^5}".format(1)))  #가운데(왼오-로 채우기)
print("35 : {}{}".format(1,2)   )  #포멧팅 {}안에 순서대로 대입
print("36 : {1}{0}".format(1,2) )  #포멧팅 {}안에 인덱스를 넣어 위치를 변경
print("--------")
str4 = "py"
str5 = "thon"
print("37 : ",f"""hello world {str4+str5+str(3.8)} """          )  #f 포멧팅 {}안에서 변수 대입 수식 계산이 가능

아래는 포멧팅을 할때 사용할수 있는 코드입니다.

코드 설명
%d 정수(Integer)
%s 문자열(String)
%c 문자(character)
%f 부동소수(floating-point)
%% 리터럴 % (문자 %)

' '.join(str.split()) #내용 중간 다중 공백 제거입니다.

1
2
3
4
>>> str = "a    b   c   d"
>>> print(''.join(str.split()))
abcd
>>>

TAG: #python #문자열변환 #문자열공백 #문자열포멧팅 #문자열자르기