문자열 정의 및 기초연산
- 시퀀스 자료형과 기초연산
시퀀스 자료형에는 앞에서 공부한 문자열, 리스트, 튜플이 있고, 시퀀스 자료형이 아닌 자료형은 사전이 있습니다. 시퀀스 자료형은 공통적인 연산을 수행하는데 아래와 같은 연산이 있습니다. 앞에서 공부한 내용들이므로, 자세한 설명은 적지 않았습니다.
----------------------------------------------------------------------------------------
1. 인덱싱
li=[1,2,3,4]
print li[0]
2. 슬라이싱
s='abcd'
print s[0:2]
3. 확장 슬라이싱
s2='abcdefg'
print s2[::] # 전체 출력
print s2[::2] # step이 2이므로, aceg 출력
4. 연결하기
s1='abc'
s2='def'
print s1+s2
5. 반복하기
s1='blue'
print s1*3
6. 멤버십 테스트
t=(1,2,3,4)
pirnt 3 in t
7. 길이정보
- len()함수 이용
s='asdf'
print len(s)
8. for-in문
color=["red","green","blue"]
for x in color:
print x
----------------------------------------------------------------------------------------
- 문자열 정의
문자열의 정의는 단일 따옴표('')와 이중따옴표("")를 이용해서 정의하는데, 3개를 동시에 사용할 때에는 자동으로 개행이 됩니다. 제가 좋아하는 노래의 가사를 단일따옴표와 이중따옴표를 이용해 정의해서 출력 해봤습니다.
----------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
s1=""" 이별밖에 할 수 있는게 없는 우리가 참 슬프지만
돌아선 네 맘을 돌리기엔 이미 늦은걸 알아서
"""
s2=''' 이별밖에 겨우 이것 밖에 할 수 없는 내가 너무 밉지만
함께여서 아픈 우리에겐 남은건 어쩔 수 없는 이별밖에'''
print s1
print s2
----------------------------------------------------------------------------------------
(실행결과)
이별밖에 할 수 있는게 없는 우리가 참 슬프지만
돌아선 네 맘을 돌리기엔 이미 늦은걸 알아서
이별밖에 겨우 이것 밖에 할 수 없는 내가 너무 밉지만
함께여서 아픈 우리에겐 남은건 어쩔 수 없는 이별밖에
----------------------------------------------------------------------------------------
- 이스케이프(Escape)문자
이스케이프 문자는 특수한 문자를 사용하기 위해 사용하는 문자로 아래와 같은 문자들이 있습니다. 자주 사용하는 문자들만 예시를 들었습니다.
----------------------------------------------------------------------------------------
# 1. \ '를 출력하기위한 문자
s1='don\'t warry'
print s1
# 2.\t : 탭 문자
s2='abc\tdef\tghi'
print s2
# 3.\n : 개행
s3='waiting for\nyou'
print s3
----------------------------------------------------------------------------------------
(실행 결과)
don't warry # ' 문자가 출력됨
abc def ghi
waiting for
you
----------------------------------------------------------------------------------------
- 문자열 변경
앞에서 공부할 때 문자열은 변경이 안된다고 공부했습니다. 그럼 문자열은 어떻게 변경할까요? 문자열의 변경은 문자열 자체를 변경하는게 아니라, 새로운 문자열을 생성해 재 할당 하는 방법을 이용합니다. 아래 코드는 ABDEF문자열을 ABCDEF로 변경하기 위한 코드입니다.
----------------------------------------------------------------------------------------
s='ABDEF'
print 'before s : '+s
s=s[0:2]+'C'+s[2:]
print 'after s : '+s
----------------------------------------------------------------------------------------
before s : ABDEF
after s : ABCDEF
----------------------------------------------------------------------------------------
- 유니코드
다른 언어들과 마찬가지로 파이썬에서도 역시 유니코드를 지원합니다. 사용하려는 문자열 앞에 u라는 문자를 붙여주면 타입이 유니코드가 됩니다. 같은 안녕하세요 라는 문자열을 입력했을 때, 유니코드를 사용하면 한글의 길이도 정확히 출력하는 걸 확인할 수 있습니다.
----------------------------------------------------------------------------------------
h1="안녕하세요"
h2=u'안녕하세요'
print type(h1),len(h1)
print type(h2),len(h2)
----------------------------------------------------------------------------------------
(실행 결과)
<type 'str'> 15
<type 'unicode'> 5
----------------------------------------------------------------------------------------
마지막으로 보통은 u를 붙여서 사용하지만, uincode()라는 내장 함수를 이용해서 사용할 수도 있습니다.
----------------------------------------------------------------------------------------
# unicode('문자열','인코딩 방식)
h=unicode('보고싶다.','utf-8')
----------------------------------------------------------------------------------------
(실행 결과)
보고싶다. <type 'unicode'>
----------------------------------------------------------------------------------------
* 출처 : 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍