문자열 메소드와 포멧팅


- 문자열 메소드

 메소드란 기존의 프로그래밍 언어에서의 함수와 대응되는 개념으로, 객체의 상태 및 속성 변경과 같이 객체에 대해 수행할 수 있는 작업을 말합니다. 문자열 관련 메소드를 알아보겠습니다.


- 대·소문자 관련 메소드

1. upper() : 해당 문자들을 모두 대문자로 변환

2. lower() : 해당 문자들을 모두 소문자로 변환

3. swapcase() : 해당 문자들을 대문자는 소문자, 소문자는 대문자로 변환

4. capitalize() : 첫 문자만 대문자로 변환

5. tilte() : 문장의 각 단어의 첫문자를 대문자로 변환

----------------------------------------------------------------------------------------

a='i lovE socceR'
print a.upper()
print a.lower()
print a.swapcase()
print a.capitalize()
print a.title()
print a
----------------------------------------------------------------------------------------
(실행 결과)

I LOVE SOCCER # 모두 대문자로 변환됨

i love soccer     # 모두 소문자로 변환됨

I LOVe SOCCEr  # 대·소문자가 반전됨

I love soccer     # 첫문자 i만 대문자로 변환하고 나머지는 소문자 변환

I Love Soccer    # 각 단어의 첫문자는 대문자로 변환하고, 나머지는 소문자로 변환

i lovE socceR    # 문자열은 변경되지 않으므로 처음 a가 출력됨

----------------------------------------------------------------------------------------


- 문자열 관련 메소드

1. count() : 몇번 등장하는 지 반환
2. find() : 찾은 문자의 첫인덱스가 몇번째인지 반환
  찾는 문자가 없는 경우 -1 반환
3. startswith()/endswith() : 해당 문자로 시작하는 지 / 끝나는 지 확인해서 True/False 반환

4. strip() : 좌우 공백을 제거해서 반환

   - rstrip()/lstrip() : 각각 오른쪽/왼쪽 공백을 제거하고 반환

   - ()안에 문자를 넣으면 해당문자도 제거하며, 탭문자(\t)나 널문자(\n)도 공백으로 인정해서 제거

5. replace(a,b) : 첫번째 인자 a를 두번째 인자인 b로 대체

6. split() : 공백을 기준으로 분리해서 리스트로 반환하며, 기준을 넣으면 기준으로 분리

7. splitlines() : 라인 기준으로 분리하여 리스트로 반환

8. join() : 리스트의 인자들을 연결

9. zfill() : 인자만큼의 길이로 만들어지고 빈 공간을 0으로 채워서 반환


----------------------------------------------------------------------------------------

# count

a2="blue red sky blue red"

print a2.count('blue') # blue 문자의 수를 반환

print '*'*50


# find()

print a2.find("red") # red가 몇번째 인덱스에 존재하는지

print a2.find('red',6) # 6번째 인덱스 이후의 red가 몇번째 인덱스에 존재하는 지

print '*'*50


# stratswith/endswith

print a2.startswith("blue") # blue라는 문자로 시작하는지

print a2.endswith("blue") #  blue라는 문자로 끝나는지

print '*'*50


# strip()

b="  \t 보고싶다.    "

print b.strip() # 좌·우 공백 제거(문자와 문자 사이 공백은 제거하지 않음)

print b.rstrip() # 오른쪽 공백 제거

print b.lstrip() # 왼쪽  공백 제거

print '*'*50


# replace()

b=b.replace('\t','너무') # b의 탭문자를 너무로 변환하고 재할당해서

print b.replace("다.","은데 볼 수가 없다.") # 다시한번 문자를 변환해서 출력

print '*'*50


# split()

c="a b c"

print c.split() # 공백 기준으로 분리해서 리스트로 반환

c2="I \n Love \n You"

print c2.splitlines() # 개행 기준으로 분리해서 리스트로 반환

print '*'*50


# join()

l1=["red","blue","green"]

print ('-').join(l1) # 리스트의 원소들을 '-'문자로 연결

print '*'*50


# zfill()

e='abc'

print e.zfill(5)

----------------------------------------------------------------------------------------

(실행 결과)

2

**************************************************

5

18

**************************************************

True

False

**************************************************

보고싶다.

  보고싶다.

보고싶다.    

**************************************************

  너무 보고싶은데 볼 수가 없다.    

**************************************************

['a', 'b', 'c']

['I ', ' Love ', ' You']

**************************************************

red-blue-green

**************************************************

00abc

----------------------------------------------------------------------------------------


- 정렬

1. center() : 문자열을 해당하는 만큼의 공간을 확보하고 가운데 정렬

2. rjust()/ljust() : 문자열을 해당하는 만큼의 공간을 확보하고 오른쪽/왼쪽 정렬

----------------------------------------------------------------------------------------

d='warten'

print d.center(50)

print d.rjust(50)

print d.ljust(50)

----------------------------------------------------------------------------------------

(실행 결과)

                      warten                      

                                            warten

warten                                            

----------------------------------------------------------------------------------------

- 확인하는 메소드
 메소드의 이름을 보면 어느정도 추측이 가능한 메소드 들입니다. True/False를 반환합니다.
1. isdigit() : 숫자로만 쓰였는지 확인
2. isalpha() : 영문자로만 쓰였는지 확인
3. isalnum() : 영문자 또는 숫자로 쓰였는지 확인
4. islower() : 모두 소문자로만 쓰였는지 확인
5. isupper() : 모두 대문자로만 쓰였는지 확인
6. isspace() "모두 공백 문자인지 확인
7. istitle() : 각 첫단어들이 대문자인지 확인



- 문자열 포멧팅

 문자열 포멧팅은 C언어에서 %s,%c등을 사용하는것과 유사하게 사용합니다. 임의의 객체를 문자열로 변환하기위해 %를 사용합니다. 튜플과 사전을 이용하며, 다음과 같은 형태로 사용 합니다.
----------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-

letter = u'''
안녕하세요 %s님
오늘 너무나도 보고싶은 날이네요
기다리고 있을게요
'''

name=u'홍길동'
print letter % name
print '*' * 50
    
names=(u'철수',u'영희') # 튜플을 이용
for name in names:
    print letter % name
    print '*' * 50

----------------------------------------------------------------------------------------
(실행 결과)
안녕하세요 홍길동님
오늘 너무나도 보고싶은 날이네요
기다리고 있을게요

**************************************************

안녕하세요 철수님
오늘 너무나도 보고싶은 날이네요
기다리고 있을게요

**************************************************

안녕하세요 영희님
오늘 너무나도 보고싶은 날이네요
기다리고 있을게요

**************************************************
----------------------------------------------------------------------------------------

 사전을 이용하는 방법도 동일하고, 사전형태는 순서가 바껴도 올바르게 상관이 없습니다.
----------------------------------------------------------------------------------------
print '%(이름)s -- %(나이)s' %{'이름':'홍길동','나이':10}
print '%(이름)s -- %(나이)s' %{'나이':50,'이름':'철수'}
----------------------------------------------------------------------------------------
(실행 결과)
홍길동 -- 10
철수 -- 50
----------------------------------------------------------------------------------------

출처 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍




'언어 > Python' 카테고리의 다른 글

[파이썬] 리스트 활용  (4) 2017.02.07
[파이썬] 리스트와 리스트 메소드  (0) 2017.02.05
[파이썬] 문자열 정의 및 기초연산  (0) 2017.02.01
[파이썬] 제어문과 함수  (0) 2017.01.25
[파이썬] 각종 연산자  (0) 2017.01.21

+ Recent posts