String(문자열)

이번 포스팅에서는 파이썬 문자열에 대한 이야기를 해보겠습니다.

문자열의 다양한 표현법

1. (")로 표현하기

"Hi There"    

2. (')로 표현하기

'Hello Python!'

3. (""")로 표현하기

""" Strange Expression!"""

4.(''')로 표현하기

'''Do python! and have fun'''

파이썬에서는 문자열을 표현하는 다양한 방법이 있습니다.

예를 들면, Madfinger's blog를 출력하려고 한다면 네가지 방법이 있습니다.

1. "Madfinger's blog" 
2. 'Madfinger\'s blog'
3. '''Madfinger's blog'''
4. """Madfinger's blog"""

result

image.png
4개 모두 같은 결과를 볼 수 있습니다. 그렇다면, 위에 4개의 차이점은 무엇일까요 ?

  • 1번 Exp : " "로 시작하면 '를 안에서 자유롭게 사용할 수 있습니다.
  • 2번 Exp : ' '이렇게 시작했다면 BackSlash(\)로 표현 할수 있습니다. 이것을 이스케이프 코드라고 하는데, 이 부분은 밑에서 추가로 설명하겠습니다.
  • 3번, 4번 Exp : 글 내부에서 모든 표현을 String에서 쓴걸 그대로 나타냅니다 심지어 칸을 하나 내리는 것 조차 나타냅니다. 예를 들면, '''madfinger's
    blog''' 이렇게 표현했다면
    결과 값은 똑같이
    " madfinger's
    blog "로 나타납니다.

@ 1번 2번 Expression에서도 띄어쓰기를 표현할수 있는데 이때 방금 위에서 본것처럼, (\)를 사용하면 됩니다. 이 부분을 이스케이프 코드라고 합니다. 예를들어 줄 바꿈은 아래와 같이 표현 가능합니다.

"Hi! This is Madfinger's \n blog"

Result
Hi! this is Madfinger's 
blog

문자열 연산하기

문자열을 가지고 다양한 표현을 해볼수 있습니다.

문자열 더하기

str1 = "python"
str2 = " Hi"
str2 + str1
result : 'Hi python'

문자열 곱하기

str ="python"
str*2
result : 'pythonpython'

문자열 길이값 구하기

str = 'Python is snake'
len(str)
result : 15

문자열 인덱싱과 슬라이싱(Indexing and Slicing)

파이썬에서는 다양한 재미난 기능들이 많습니다. 예를 들어서, 특정 문자열을 받았는데 그 문자열에서 하나씩 글자를 뽑을수 있습니다. 말 글자가 순서대로 번호가 매겨져 있는데 이것을 인덱싱이라고 합니다.

Indexing(인덱싱)이란?

예를 들어,"Hello" 라는 문자열이 있습니다. 그럼 이것의 인덱싱은 다음과 같습니다.

str = "Hello"
str[0]:'H' str[1]:'e' str[2]:'l' str[3]:'l' str[4]:'o'

인덱스는 0부터 시작 되서 차례대로 갑니다.

그래서 문자열 추출은?(Slicing)

자 이제 그러면, 문자열에서 문자는 추출했는데, 특정 문자열을 뽑아내고 싶은데 어떻게 할까요 ?

위에 첫 두글자를 뽑으려고 한다면, 아래처럼 해야할까요?

str[0]+str[1]
result: 'He'

이렇게 표현하면 글자가 길어지면 정말 헬이죠.. 그래서

Slicing 이 나오게 됩니다.

바로 예제를 보여드리겠습니다.

str = 'python is monster' 
str[0:1] -> 'p'
str[4:7] -> 'on '

눈치 채셨나요? str[A:B] A는 시작 인덱스이고 B는 끝인덱스입니다. 4:7 이라면 4 , 5, 6번 인덱스까지 보여주는 것입니다. 즉, 마지막 인덱스는 보여주지 않는거죠 바로 그 전까지 보여주는 것입니다.

str[4:] -> 'on is monster'
str[:5] -> 'pyth'

위에처럼 저렇게 활용하는 방법도 있습니다.

마이너스 인덱스를 활용한 슬라이싱

슬라이싱 할때 특이한 방법도 있습니다. 마이너스 인덱스를 쓰는 것인데, 문자열이 길어지다 보면, 첫 몇글자부터 끝 몇 글자를 끊고 싶을때에 쓰면 좋은 방법입니다.

"python is hell" 

위에서 첫번째 p와 끝 ll두개를 빼고 표현할때에는

 str[1:-2] -> 'ython is he' 

이렇게 표현하면 됩니다. 방법은 똑같이 마지막 인덱스를 빼고 나타나게 됩니다. 문자열 이 먹는 방법은

str[-1] -> l
str[-2] -> l
str[-3] -> e

이런식으로 맨마지막 인덱스는 -1이 됩니다.


문자열 포매팅(문자열에 숫자 및 문자 대입하기)

.format()을 이용한 대입 방법

num = 10
str = "hi"

"go and {0} {1} times".format(str, num)

"go and {0} {1} times".format(str ="hi", num = 10)

"go and {0} {1} times".format("hi", num = 10)

result :  'go and hi 10 times" 

위와 같이 사용할 수 있습니다.

소수점 표현 및 자르기

pi = 3.141597
"{0:0.4f}".format(pi)
result : '3.1415'

소수점 4자리까지 자르고 싶다면 0.4f 이렇게 표현하면 됩니다.

f 포매팅

파이썬 3.6 부터 사용가능하니 유의 해주세요

name = 'Coreano'
age = 20
f' My name is {name} and age is {age}.'
result : 'My name is Coreano and 20'

소수점은 다음과 같이 표현 가능합니다.

pi = 3.14159
f'{pi:0.4f}'
result : '3.1415'

문자열의 다양한 기능

문자 갯수 값 얻기

str="tall"
a.count('l')
result : 2

문자 위치 얻기 1 (find)

str="hi there"
str.find('i')
reuslt : 1

str.find('k')
reuslt : -1 // 없는 문자열일때 -1 리턴

str.find('e')

result : 5 // 첫번째로 나오는 e값 리턴

문자 위치 얻기 2 (index)

str="hi there"
str.index('i')
result : 1

str.index('k')
reuslt : error

없는 문자를 찾을때는 에러를 내 버린다.

문자열 바꾸기(replace)

str = "hi there"
str.replace("hi","bye")
result : 'bye there'

문자열 나누기(split)

split('자르고 싶은 문자')를 기준으로 잘리게 됩니다.

str = "hi there"
str.split()
['hi' 'there']

str2 = "kore:a"
str2.split(':')
['kore','a']
profile
A ship is always safe at the shore, but that is not what it is built for - Albert Einstein

0개의 댓글