문자열 (string)문자,단어 등으로 구성된 집합 !!


"Hello world"

"a"

"123"


1. 큰따옴표

"Hello world"


2. 작은 따옴표


'Hello world'


3. 큰따옴표 3개


"""Hello World"""


4. 작은따옴표 3개


'''Hello World'''



출력결과로


Apple's favorite fruit 를 보고 싶을때


fruit = "Apple's favorite fruit"  와 같이 " 로 묶어 주어야 한다. 


해당을


fruit = 'Apple's favorite fruit' 라고 했을시  Syntax Error 가 발생한다.


    food = 'Apple's favorite fruit'

                  ^

SyntaxError: invalid syntax



Apple"s favorite fruit 를 보고 싶을 때는 반대로


fruit = 'Apple"s favorite fruit' 로   ' 로 묶어 주어야 한다. 




\(백슬래시)를 이용해서 작은 따옴표와 큰따옴표도 인식이 가능 


\" 를 입력하게 되면 \앞에 "는 문자열을 묶는것이 아닌 자체로 인식

\' 도 마찬가지 




back =" \" Apple is very good \" he said."
print("food ",back)


결과

food   " Apple is very good " he said.


!!!!! 여러 줄 처리하기 

Apple is Good

Good is Apple




fruit = "Apple is good \n Good is Apple"

print(fruit)


' \n' 코드가 핵심  하지만 가독성이 매우 떨어지기 때문에 다른방법을 사용해야 한다.


"""문자열""" 로 묶어서 사용


fruit = "Apple is good \n Good is Apple"
multi = """Apple is good
Good is Apple
"""
print(fruit)
print(multi)

결과


Apple is good 

 Good is Apple

Apple is good

Good is Apple


물론 ''' 문자열''' 로 작은따옴표도 사용이 가능하다.


***** 파이썬 이스케이프 코드


\n     문자열 안에서 줄을 바꿀 때 사용

\t        문자열 사이에 탭 간격을 줄 때 사용

\\        문자\을 그대로 표현할 때 사용

\'            작은따옴표(')를 그대로 표현

\"            큰따옴표(")를 그대로 표현

\r            캐리지 리턴(줄바꿈후 현재 커서를 가장 앞으로 이동)

\f            폼 피드(줄바꿈 후 현재 커서를 다음 줄로 이동)

\a            벨 소리(출력시 PC스피커에서 삑소리)

\b            백 스페이스

\000         널 문자



&&&& 문자열 연산 



1. 문자열 더해서 연결 


start = "Start is "
End = "End "

print(start+End)

결과

Start is End


2. 문자열 곱셈


Start ="Product String\t"

print(Start*2)


결과


Product String Product String


곱셈 (2)


sp = "*"


print(sp*60)
print(sp*26,"Start",sp*26)
print(sp*60)


결과


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

************************** Start **************************

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



>>> 문자열 인덱싱과 슬라이싱 


1. 인덱싱


문자열 꺼내기 (1)


Index ="Apple is Very good"


print(Index[6],Index[7],Index[8],Index[0],Index[1],Index[2],Index[3])

결과

i s   A p p l


인덱싱은 0부터 시작된다. 


문자열 꺼내기 (2)


Index ="Apple is Very good"


print(Index[-6],Index[-7],Index[-8],Index[-0],Index[-1],Index[-2],Index[-3])

print(Index[-0])



결과

y r e A d o o

A



-1 은 맨뒤에 첫번 째 숫자 부터 가리키게 된다. 

0 과 -0은 같은 숫자이기 때문에 0은 -0으로 표시하여도 첫번째 숫자가 표시됨을 확인 할수 있다. 


2. 슬라이싱


slice ="Apple is Very Good"
print(slice[0:6])

결과


Apple


slice의 0~5까지의 문자열을 하나씩 꺼내서 출력 한다. 


주의할점 : ************* slice[0:6] 의 뜻은 slice 의 0<=slice <6으로 해석이 되기때문에 0~ 5까지의 문자열이 출력된다. 오해하면 안된다.


꼭 시작점과 끝점을 표시안해도 상관은 없다.

slice[4:] 으로 표시시 시작번호부터 끝까지 출력 한다. 4~끝까지 출력 

slice[:7] 시에는 0~7까지 출력



slice의 예

#  테스트 파이썬

a="20160725HotSummer"
date=a[:8]
weather =a[8:]
print("date is ",date)
print("weather ",weather)


결과


date is  20160725

weather  HotSummer


1번째 줄 a[:8] 이면 0~7까지  0 <= a < 8 로 표현이 되기때문에 0 ~ 7까지의 문자열들이 보여지게 된다.

2번째 줄 a[8:] 이게 되면  8< = a < ~ 이기 때문에 8부터 끝 문자열까지 모두 표현 을 해준다.



문자열의 값들을 인덱싱을 이용하여서 꺼낼순 있지만 문자열의 요소값은 바꿀수 있는 값이 아니다.


문자열,튜플 등의 자료값은 변경이 불가능하다 (immutable한 자료형이라고도 한다. )

 C++에 mutable 이라는키워드가있는데 클래스 변수가 mutable int m_int;로 선언시


void show() const

{

// const으로 되어있기 때문에 변경이 불가능하지만 mutable변수에 대해서는 변경이 가능

}

mutable 선언은 멤버 변수의 조작이 가능한 변수로 선언을 하겠다는 의미를 가지고있는데


많이 사용하는것을 보지못했지만 이 의미와 상반되는 의미의 immutable 한 자료형이라고 하는거같다.












'개발일지(Language) > Python(3.x)' 카테고리의 다른 글

7 - 문자열 포매팅(발전)  (0) 2016.07.26
6 - 문자열 포매팅(기본)  (0) 2016.07.26
4 - 연산자  (0) 2016.07.25
3 - 숫자형  (0) 2016.07.25
2 - 에디터  (0) 2016.07.25

+ Recent posts