본문 바로가기

프로그래밍/Python

자료형2 - 문자열

파이썬에서 문자열을 다음과 같이 4가지 방법으로 만들 수 있습니다.


'hello world'

"hello world"

'''hello world'''

"""hello world"""


''' 와 """ 은 여러 문자열을 입력할 수 있습니다.



인덱싱(indexing)과 슬라이싱(slicing)


>>> s = 'hello world'
>>> print(s[0], s[1], s[2], s[-1], s[1:4])
h e l d ell




s[1] 을 인덱싱(indexing), s[1:4] 를 슬라이싱(slicing)이라고 부릅니다.


문자열 관련 연산

>>> s = 'hello world'
>>> print(s * 2)
hello worldhello world
>>> print('hello' in s)
True



java 같은 언어에서는 'hello world'를 두 번 출력하려면 for문이나 while문 같은 loop문을 수행해야 되지만 python에서는 s * 2 로 간단히 출력할 수 있습니다. 

또 'hello' in s 으로 해당 문자열이 있는지 검증할 수 있습니다.


문자열 포맷


>>> print('name : {0}, age : {1}'.format('hong', 29))
name : hong, age : 29
>>> print('name : {}, age : {}'.format('hong', 29))
name : hong, age : 29
>>> print('name : {name}, age : {age}'.format(name='hong', age=29))
name : hong, age : 29
>>> print('name : %s, age : %d' % ('hong', 29))
name : hong, age : 29



python 에서는 다양한 방법으로 포맷을 지정할 수 있습니다. 

첫 번째로 {} 으로 포맷을 지정할 수 있는데 {0}, {1} 과 같이 숫자를 지정하여 포맷을 줄 수 있으며

숫자를 빼고 {}, {} 와 같이 쓰게 되면 파이썬이 알아서 넣어 줍니다. 


{name} 과 같이 변수명을 지정하여 포맷을 지정할 수도 있습니다. 


C의 printf와 비슷하게 방식으로 포맷을 지정할 수 있는데

이 때는 문자열 끝에 % 을 붙이고 변수나 값을 넣어줍니다.


2진수, 8진수, 16진수 진법 변환 포맷

>>> print('{0:b} {0:o} {0:x} '.format(100))
1100100 144 64 
>>> print('{0:#b} {0:#o} {0:#x}'.format(100))
0b1100100 0o144 0x64
>>> print('%d %o %x' % (100, 100, 100))
100 144 64 





문자열 관련 함수 

>>> s = '          hello         '
>>> print(s.lstrip())
hello         
>>> print(s.rstrip())
          hello
>>> print(s.strip())
hello
>>> print('<[unbracketed]>'.strip('[](){}<>'))
unbracketed
>>> print(s.find('hello'))
10
>>> print(s.index('hello'))
10
>>> print(s.find('hi'))
-1
>>> print(s.index('hi'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

join - 문자열 결합

strip - 공백제거

find - 문자열 검색 : 해당 문자열 위치 리턴 없으면 -1 

index - 문자열 검색 : find와 같으나 없으면 ValueError 발생 

replace - 문자열 대체

split - 문자열 분리

startswith - 

endswith - 









'프로그래밍 > Python' 카테고리의 다른 글

자료형3 - 리스트  (0) 2015.04.02
자료형1 - 수치형  (0) 2015.04.01
Python3 설치  (0) 2015.04.01