String 타입에 대해서 알아보도록 하겠습니다.
파이썬의 문자열을 대부분 ""이나 '' 로 감싸져 있습니다.
어? 왜 이렇게 복잡하게 했지?
라고 의심하실 수도 있지만, 다 이유가 있습니다. 왜냐하면, "It's New"라는 말을 출력하고 싶을 때에 '는 문자열로 나타내고 싶다면 ( " ) 큰따옴표 내부에 ( ' ) 작은 따음표를 사용하면 됩니다.
문자열 사용하기
>>> a = "apple"
>>> a
'apple'
>>> a = 'apple'
>>> a
'apple'
문자열 내에 ' (작은따옴표) 추가하는 방법
>>> n = "it's new"
>>> n
"it's new"
>>> print(n)
it's new
>>> n = 'it\'s new'
>>> print(n)
[이스케이프 코드란?]
문자열 예제에서 여러 줄의 문장을 처리할 때 백슬래시 문자와 소문자 n을 조합한 \n 이스케이프 코드를 사용했다. 이스케이프 코드란 프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 "문자 조합"이다. 주로 출력물을 보기 좋게 정렬하는 용도로 사용한다. 몇 가지 이스케이프 코드를 정리하면 다음과 같다.
코드설명
\n | 문자열 안에서 줄을 바꿀 때 사용 |
\t | 문자열 사이에 탭 간격을 줄 때 사용 |
\\ | 문자 \를 그대로 표현할 때 사용 |
\' | 작은따옴표(')를 그대로 표현할 때 사용 |
\" | 큰따옴표(")를 그대로 표현할 때 사용 |
\r | 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동) |
\f | 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동) |
\a | 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다) |
\b | 백 스페이스 |
\000 | 널 문자 |
이중에서 활용빈도가 높은 것은 \n, \t, \\, \', \"이다. 나머지는 프로그램에서 잘 사용하지 않는다.
>>> 점프투파이썬 에서
문자열에 멀티 라인을 사용할 때에는
다음과 같이하면 됩니다.
>>> multiline='''
... Life is too short
... You need python
... '''
문자열은 문자열끼리 더하기고 가능합니다.
>>> a = 'apple'
>>> p = 'pen'
>>> a + p
'applepen'
마찬가지로 곱하기도 가능하지요
>>> a * 50
'appleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleapple'
>>> a * p
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'str'
하지만, 문자열과 곱하기는 숫자만 가능합니다.
문자열 길이 구하기
문자열의 길이를 알고 싶을때에 내장되어 있는 len 이라는 함수를 사용할 수도 있습니다
>>> a = 'apple'
>>> len(a)
5
문자열 슬라이싱
문자열을 뽑아서 하는 방법
>>> a = "Life is too short, You need Python"
>>> b = a[0] + a[1] + a[2] + a[3]
>>> b
'Life'
혹은 아래와 같이 [시작 : 끝] 으로 문자열을 슬라이싱 할 수도 있습니다.
그리고 : 앞뒤로 아무것도 붙이지 않는다면 "~끝" 또는 "처음~" 라는 의미입니다.
>>> a = "Life is too short, You need Python"
>>> a[0:4]
'Life'
>>> a[19:]
'You need Python'
문자열 포매팅
우리가 문자를 출력하는 프로그램을 작성할 때, 예를들어
"현재 습도는 75%입니다."를 출력했는데
10분 뒤에 다시 출력을 하게 된다면
습도는 계속 적으로 변하는 변수입니다. 이럴때 사용하는 것이 문자열 포매팅인데요
간단히 살펴 보면
>>> "I eat %d apples" %3
'I eat 3 apples'
%d는 숫자를 넣을 곳을 말하고 %s는 문자를 나타낼때 입니다.
>>> "This is %s" %'minsu'
'This is minsu'
또한
%뒤에 변수가 올 수도 있습니다.
>>> num = 3
>>> "i ate %d apples" %num
'i ate 3 apples'
만약 2개가 있다면 아래와 같이 할 수도 있습니다.
>>> "어제 %s가 우리집에 찾아왔었는데, %d원을 주고 갔습니다." %('민수', 500)
'어제 민수가 우리집에 찾아왔었는데, 500원을 주고 갔습니다.'
숫자와 함께 포매팅 사용하기
>>> "공 %10s 백" %'hi'
'공 hi 백'
>>> "Pi는 %0.4f" % 3.147292
'Pi는 3.1473'
>>> "I eat {0} apples".format("five")
'I eat five apples'
>>> "{0}와 {1}는 앞으로 어떻게 될까요?".format('철수', '영희')
'철수와 영희는 앞으로 어떻게 될까요?'
>>> "{name}의 나이는 {age}살 입니다.".format(name='철수', age=10)
'철수의 나이는 10살 입니다.'
문자열 관련 함수
>>> a = "apple"
>>> a.count('p')
2
>>> a = "apple"
>>> a.find('p')
1
>>> a.find('a')
0
>>> a.find('t')
-1
위치를 알려주는 건 find와 index가 있는데
index의 경우 반환하는 값이 없다면 Error를 나타낸다
>>> a.index('a')
0
>>> a.index('p')
1
>>> a.index('l')
3
>>> a.index('t')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>>
'프로그래밍 > Python' 카테고리의 다른 글
VS Code 단축키 전체 (0) | 2020.08.29 |
---|---|
파이썬 언더바, 언더스코어가 이렇게 쓰인다? (0) | 2020.08.14 |
[Python 기초] 숫자형 (number) (0) | 2020.07.23 |
Python 네이버 이미지 크롤링 방법 (0) | 2020.05.17 |
Ep1. Python 변수와 문자열 인덱싱 및 슬라이싱, 리스트, 딕셔너리 (0) | 2020.01.21 |