본문 바로가기
언어/python

python 자료형(문자열)

by 스퀴시 2020. 7. 15.
728x90
SMALL
문자열 만들기

1. 큰따옴표(" ")로 둘러싸기

#큰따옴표(" ")로 둘러싸기
"hello world"

#작은따옴표(' ')로 둘러싸기
'hello my world'

#큰따옴표 3개를 연속으로써서 둘러싸기
"""welcome to my Tstory"""

#작은따옴표 3개를 연속으로써서 둘러싸기
'''"""welcome to my Tstory'''

 

문자열 안에 작은따옴표나 큰 따옴표 포함시키기
#백슬래쉬 사용
"\'hello world\'" -> 'hello world'

 

여러 줄인 문자열을 변수에 대입 
1. 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기
>>> multiline = "Life is too short\nYou need python"

or

2. 연속된 작은따옴표 3개(''') 또는 큰따옴표 3개(""") 사용하기
>>> multiline='''
... Life is too short
... You need python
... '''
작은따옴표 3개를 사용한 경우

>>> multiline="""
... Life is too short
... You need python
... """
큰따옴표 3개를 사용한 경우

 

문자열 연산하기

  • 파이썬에서는 문자열을 더하거나 곱할 수 있다. 다른 언어에서는 쉽게 찾아볼 수 없는 재미있는 기능으로, 우리 생각을 그대로 반영해 주는 파이썬만의 장점이라고 할 수 있다.
#문자열 곱하기
print("="*50)
print("helloWorld")
print("="*50)

문자열 인덱싱 활용

>>> a = "Life is too short, You need Python"
>>> a[0]
'L'
>>> a[12]
's'
>>> a[-1] #파이썬은 문자열 인덱싱이 원형형태다. 뒤로도 참조 가능
'n'
>>> a[-2]
'o'
>>> a[-5]
'y'

 

문자열 슬라이싱

>>> a = "Life is too short, You need Python"
>>> a[0:4]   //자리0~3번째까지 문자를 뽑아내라
'Life'
>>> a[0:3]  //수식표현: 0 <= a < 3
'Lif'
#슬라이싱은 끝자리 단어는 포함하지 않은채 뽑아낸다. 
#따라서 문자를 뽑아낼때 뽑을 문자 +1 까지 뽑아줘야한다.

>>> a[19:] //끝 번호 생략시 문자열 끝까지 출력
'You need Python'
>>> a[19:-7] //마이너스도 활용 가능
'You need'

 

  • 슬라이싱으로 문자열 나누기
>>> a = "20200313Sunny"
>>> date = a[:8]
>>> weather = a[8:]
>>> date
'20200313'
>>> weather
'Sunny'

 

문자열 포매팅

  • 문자열 자료형은 그 요솟값을 변경할 수 없다. 그래서 immutable 한 자료형이라고도 부른다
1. 숫자 바로 대입

>>> "I eat %d apples." % 3
'I eat 3 apples.'

2. 문자열 바로 대입

>>> "I eat %s apples." % "five"
'I eat five apples.'

3. 숫자 값을 나타내는 변수로 대입

>>> number = 3
>>> "I eat %d apples." % number
'I eat 3 apples.'

4. 2개 이상의 값 넣기

>>> number = 10
>>> day = "three"
>>> "I ate %d apples. so I was sick for %s days." % (number, day)
'I ate 10 apples. so I was sick for three days.'

 

  • 문자열 포맷 코드

  • 포매팅 연산자 %d와 %를 같이 쓸 때는 %%를 쓴다.

format 함수를 사용한 포매팅

문자열 바로 대입하기

>>> "I eat {0} apples".format("five")
'I eat five apples'

숫자 바로 대입하기

>>> "I eat {0} apples".format(3)
'I eat 3 apples'

숫자 값을 가진 변수로 대입하기

>>> number = 3
>>> "I eat {0} apples".format(number)
'I eat 3 apples'

2개 이상의 값 넣기

>>> number = 10
>>> day = "three"
>>> "I ate {0} apples. so I was sick for {1} days.".format(number, day)
'I ate 10 apples. so I was sick for three days.'

이름으로 넣기

>>> "I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
'I ate 10 apples. so I was sick for 3 days.'

인덱스와 이름을 혼용해서 넣기

>>> "I ate {0} apples. so I was sick for {day} days.".format(10, day=3)
'I ate 10 apples. so I was sick for 3 days.'

문자열 관련 함수들

※문자 개수 세기(count)
>>> a = "hobby"
>>> a.count('b')
2
#문자열 중 문자 b의 개수를 돌려준다.

※위치 알려주기1(find)
>>> a = "Python is the best choice"
>>> a.find('b')
14
>>> a.find('k')
-1
#문자열 중 문자 b가 처음으로 나온 위치를 반환한다.
#만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환한다.

※위치 알려주기2(index)
>>> a = "Life is too short"
>>> a.index('t')
8
>>> a.index('k')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
#문자열 중 문자 t가 맨 처음으로 나온 위치를 반환한다.
#만약 찾는 문자나 문자열이 존재하지 않는다면 오류를 발생시킨다.
#앞의 find 함수와 다른 점은 문자열 안에 존재하지 않는 문자를 찾으면 오류가 발생한다는 점이다.

※문자열 삽입(join)
>>> ",".join('abcd')
'a,b,c,d'
#abcd 문자열의 각각의 문자 사이에 ','를 삽입한다.

#join 함수는 문자열뿐만 아니라 앞으로 배울 리스트나 튜플도 입력으로 사용할 수 있다(리스트와 튜플은 곧 배울 내용이니 여기에서는 잠시 눈으로만 살펴보자).
#join 함수의 입력으로 리스트를 사용하는 예는 다음과 같다.

>>> ",".join(['a', 'b', 'c', 'd'])
'a,b,c,d'

※소문자를 대문자로 바꾸기(upper)
>>> a = "hi"
>>> a.upper()
'HI'
#upper 함수는 소문자를 대문자로 바꾸어 준다. 
#만약 문자열이 이미 대문자라면 아무 변화도 일어나지 않을 것이다.

※대문자를 소문자로 바꾸기(lower)
>>> a = "HI"
>>> a.lower()
'hi'
#lower 함수는 대문자를 소문자로 바꾸어 준다.

※왼쪽 공백 지우기(lstrip)
>>> a = " hi "
>>> a.lstrip()
'hi '
#문자열 중 가장 왼쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지운다.
#lstrip에서 l은 left를 의미한다.
#rstrip은 right 공백 지우기

※양쪽 공백 지우기(strip)
>>> a = " hi "
>>> a.strip()
'hi'
#문자열 양쪽에 있는 한 칸 이상의 연속된 공백을 모두 지운다.

※문자열 바꾸기(replace)
>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'
#replace(바뀌게 될 문자열, 바꿀 문자열)처럼
#사용해서 문자열 안의 특정한 값을 다른 값으로 치환해 준다.

※문자열 나누기(split)
>>> a = "Life is too short"
>>> a.split()
['Life', 'is', 'too', 'short']
>>> b = "a:b:c:d"
>>> b.split(':')
['a', 'b', 'c', 'd']


LIST

'언어 > python' 카테고리의 다른 글

python Numpy  (0) 2020.07.15
python 반복문  (0) 2020.07.15
List 자료형  (0) 2020.07.15
python 자료형 (숫자형)  (0) 2020.07.15
Python 기초  (0) 2020.07.15