# 파이썬 문자열



python에서 String은 문자나 단어 등으로 구성된 문자들의 집합을 의미합니다. "Hello world", "123456789", "hi" 등이 해당 될 것 입니다. 파이썬에서는 문자열을 큰따옴표("")로 감싸서 표현하는데요 단어, 문자 뿐만 아니라 숫자도 따옴표로 둘러 쌓여 있다면, 모두 문자열로 인식합니다.


파이썬에서 문자열 변수를 선언하는 방법은 다양합니다. 크게 4가지로 분류할 수 있는데요 방법은 아래와 같습니다.



1. 따옴표(quotation)


사실 큰 따옴표나 작은 따옴표나 문자열로 인식하기는 매한가지 입니다. 하지만 문자열안에 큰 따옴표가 있는경우는 어떨까요? 예를 들어 He said "Its time to go". 라는 문자열이 있다고 가정해 봅시다. 파이썬에서 문자열 변수로 저장하려면 아래와 같이 입력해야 겠죠?


1
2
str1 = "He said "Its time to go"."
 
cs



하지만 이런식으로 정의한 변수가 올바르게 작동할 까요? 아마 Syntax에러를 내보내며 고치라고 하겠죠?


이런경우에는 작은 따옴표를 사용하면 문제를 해결할 수 있습니다.

1
2
str1 = 'He said "Its time to go".'
 
cs


  이번에는 문자열로 잘 인식하는 것을 볼 수 있습니다. 이렇듯이 일반적인 상황이라면 문자열을 선언 할 때 작은 따옴표나 큰 따옴표의 여부가 전혀 상관없지만, 문장안에 작은 따옴표가 있는경우라면 큰 따옴표로 선언을, 큰 따옴표가 있는경우라면 작은 따옴표로 선언을 하시면 됩니다.


2. 따옴표 3개


따옴표 3개는 파이썬에서 긴 문자열을 선언할 때 사용하는 방법인데요, 소설 책 1페이지를 문자열 변수에 담는다고 생각해 봅시다. 에러가 나거나 인식이 안되는 경우가 발생할 것입니다. 이런경우 큰 따옴표나 작은 따옴표 3개를 사용하여 문자열을 감싸주면 정확하게 인식이 됩니다.


1
2
quotes = """I don't believe that if you do good, good things will happen. Everything is completely accidental and random. Sometimes bad things happen to very good people and sometimes good things happen to bad people. But at least if you try to do good things, then you're spending your time doing something worthwhile
Read more at: https://www.brainyquote.com/quotes/helen_mirren_534603?src=t_random"""
cs





# 문자열 변수의 입력과 연산


문자열 변수를 사용하기 위하여 변수를 선언하는 방법도 있지만, 외부에서 입력을 받아오는 방법이 존재합니다.

그를 위해서 python에서는 input이라는 내장함수를 지원하는데요,

input 함수를 사용하면 키보드를 통하여 문자열을 입력받을 수 있습니다. input함수의 인자 값으로 들어가는 문자열은 입력전에 화면에 표시할 문자열입니다.


1
2
3
str1 = input("prompt>>")
print(str1)
 
cs



위 사진은 코드에대한 결과 값입니다.

input의 인자로 prompt>>를 주었더니 화면에 표시가 되었습니다. 그리고 나서 제가 코드사기꾼은 사실 좋은 사람이야를 입력하였더니 이 값이 str1이라는 변수에 저장되어 화면에 출력되었죠?


또한 Python에서는 다른 언어와 달리 문자열을 이용해 더하거나 곱하기를 할 수있는 특징이 있습니다.

예를 들어 "="를 50번 출력하고 싶을시에 간단히 "="*50을 해주면 됩니다. 문자열끼리 연결하고 싶은때에는 +연산자를 사용해 "문자열 변수+ 문자열 변수" 가 가능합니다. 한번 확인해 볼까요?


1
2
print("="*50)
print("코드"+"사기꾼")
cs







# 문자열 인덱싱 & 슬라이싱


파이썬에는 인덱스로 접근할 수 있는 특별한 자료형이 있는데요 이를 우리는 시퀀스 자료형이라고 부릅니다. 시퀀스란 무슨 뜻일까요? 연속된 하나의 설정을 의미하는 단어 입니다. 즉 어떤 것의 연속이란 뜻으로 받아들이시면 됩니다.


문자열은 문자의 연속입니다. I love you라는 문장을 위해서는 I,l,o,v,e,y,o,u가 필요 합니다. 그럼 이를 순서대로 색인 할 수 있겠죠? 이렇듯 파이썬에서는 문자 하나하나를 인덱스로 받아들이고 이를 인덱스를 기준으로 접근할 수 있는방법인 인덱싱과 인덱스를 기준으로 자르고, 나눌 수 있는 슬라이싱이라는 것을 지원합니다. 모든 시퀀스 자료형에는 이 방법을 사용할 수 있습니다.


C언어에서 문자열을 생각해 봅시다.  char* str = "Hello world" 라는 문자열이 있을 경우에 분명히 각 문자에 인덱스로 접근이 가능했습니다. python도 마찬가지 입니다. 각 문자열의 시작 문자를 0번 인덱스로 지정하고 접근할 수 있습니다.



1
2
str = "Rekt77 is nothing."
print(str[0]+str[1]+str[2]+str[3])
cs


인덱싱의 결과입니다. 0번째, 1번째, 2번째, 3번째 문자열을 골라 서로 더했습니다. 각각이 R,e,k,t 이기 때문에 합치면 Rekt가 되겠죠? 제대로 동작했습니다.


이번에는 인덱스를 이용해서 문자열을 나누고, 잘라보도록 해겠습니다. 이것을 슬라이싱이라고 하는데요 슬라이싱에는 몇가지 규칙이 있습니다.


1. [이상:]


명시한 인덱스 이상의 인덱스만을 표현하고 싶을 때 사용하는 방법입니다. [2:]를 사용한다면 2번째 인덱스 이상의 요소를 전부 출력하겠죠 ?





2. [:미만]


명시한 인덱스 미만의 인덱스만을 표현하고 싶을 때 사용하는 방법입니다. [:2]를 사용한다면 2번째 인덱스 미만의 요소를 전부 출력하여 결과값은 Re가 나올 것 입니다.





3. [이상:미만]


범위를 명시하여 문자열을 나누고 싶을 때 사용하는 방법입니다. [2:7]를 사용한다면 2번째 인덱스 이상, 7번째 인덱스 미만의 요소를 전부 출력하여 결과값은 kt77가 나올 것 입니다.





4. [이상:미만:스텝]


이 부분은 많은 분들이 잘 모르시는 내용인데요 슬라이싱에는 콜론을 두 개까지 사용할 수 있습니다. 콜론을 한개 더 사용하게 되면 스텝을 넣어 슬라이싱을 할 수 있는데요 스텝에 2를 넣는다면 해당 인덱스가 2의 배수이면, 출력이 됩니다. 범위를 2이상 15미만으로 설정을 하였기 때문에 그 안에서만 스텝이 적용됩니다.




'Dev > python' 카테고리의 다른 글

[python] 리스트 함수  (0) 2019.02.11
[python] 리스트와 Shallow Copy  (0) 2019.02.10
[python] 문자열 함수  (0) 2019.02.09
[python] 기본자료형 - 숫자  (0) 2019.02.07
[python] 파이썬 설치하기  (0) 2019.02.07

+ Recent posts