자료형_문자열

📌 문자열 자료형

👉 문자열 = 따옴표로 둘러쌓여 있는 것

"python"
"123"

👉 문자열 만드는 4가지 방법

"python"
'python'
"""python"""
'''python'''

👉 문자열 안에 따옴표 포함시키기!

cv변수에 It's my velog 저장하기

>>> cv = "It's my velog"

say변수에 "It's my velog", he says. 저장하기

>>> say = '"It is my velog", he says.'

백슬래시(\) 사용하기

>>> cv = 'It\'s my velog'
>>> say = "\"It is my velog\", he says."

👉 여러 줄인 문자열을 변수에 대입하기

multiline변수에...저장하기

I love music.
My best thing is dusk till dawn.

▪ 이스케이프 코드\n 삽입하기

>>> multiple = "I love music.\nMy best thing is dusk till dawn."

▪ 따옴표 세 개 연속쓰기

>>> multiline = """
I love music.
My best thing is dusk till dawn.
"""

👉 문자열 연산하기

▪ 더하기

>>> head = "Hi, "
>>> tail = "nice to meet you."
>>> head + tail
'Hi, nice to meet you.'

▪ 곱하기

>>> a = 'python'
>>> a * 2
'pythonpython'

▪ 문자열 길이 구하기

>>> a = "Hi, nice to meet you."
>>> len(a)
21

👉 인덱싱과 슬라이싱

인덱싱(Indexing)은 무언가를 가르키는 것
슬라이싱(Slicing)은 무언가를 잘라내는 것

▪ 인덱싱

  • 0부터 수를 샌다

>>> a = "Hi, nice to meet you."
>>> a[5]
'i'
>>> a[0]
'H'
  • 뒤 부터 읽기 위한 마이너스(-)

>>> a = "Hi, nice to meet you."
>>> a[-1]
'.'
>>> a[-6]
't'

▪ 인덱싱

  • 끝 번호에 해당하는 것은 포함❌

>>> a = "Hi, nice to meet you."
>>> a[0:2]
'Hi'
  • 다양한 예

>>> a = "Hi, nice to meet you."
>>> a[0:2]
'Hi'
>>> a[:2]
'Hi'
>>> a[4:8]
'nice'
>>> a[8:]
' to meet you.'
>>> a[:]
'Hi, nice to meet you.'
>>> a[4:-13]
'nice'

▪ 문자열 나누기

>>> a = "20210529Rainy"
>>> date = a[:8]
>>> weather = a[8:]
>>> date
'20210529'
>>> weather
'Rainy'

👉 문자열 포매팅

▪ 숫자 바로 대입

>>> "I have %d pens." %3
'I have 3 pens.'

▪ 문자열 바로 대입

>>> "I have %s pens." %"three"
'I have three pens.'

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

>>> number = 3
>>> "I have %d pens." %number
'I have 3 pens.'

▪ 2개 이상의 값 넣기

>>> number = 5
>>> day = "two"
>>> "I have %d pens that i bought %s days ago" %(number, day)

▪ 만능 %s

>>> "I have %s pens." %5
'I have 5 pens.'
>>>"rate is %s" %90.3
'rate is 90.3'

▪ '%'포함하기

>>> "Its possibility is %d%%." %90
'Its possibility is 90%.'

▪ 포맷 코드와 숫자 함께 사용하기

  • 정렬과 공백

>>> "%10s" %"Hi"
        Hi
>>> "%-10sTom" %"Hi"
Hi        Tom
  • 소수점 표현하기

>>> "%0.4f"% 3.141592
'3.1416'
>>> "%10.4f"%3.141592
'    3.1416'

▪ format 함수를 사용한 포매팅

  • 숫자 바로 대입

>>> "I have {0} pens".format(3)
'I have 3 pens
  • 문자열 바로 대입

>>> "I have {0} pens".format("three")
'I have three pens'
  • 숫자 값을 나타내는 변수로 대입

>>> number = 3
>>> "I have {0} pens".format(number)
  • 2개 이상의 값 넣기

>>> number = 5
>>> day = "two"
>>> "I have {0} pens that i bought {1} days ago".format(number, day)
'I have 5 pens that i bought two days ago
  • 이름으로 넣기

>>> "I have {number} pens that i bought {day} days ago".format(number = 5, day = "two")
'I have 5 pens that i bought two days ago'
  • 인덱스와 이름을 혼용해서 넣기

>>> "I have {0} pens that i bought {day} days ago".format(3, day="two")
'I have 3 pens that i bought two days ago'
  • 정렬

>>> "{0:<10}".format("Hi")
'Hi        '
>>> "{0:>10}".format("Hi")
'        Hi'
>>>"{0:^10}".format("Hi")
'    Hi    '
  • 공백 채우기

>>> "{0:=^10}".format("Hi")
'====Hi===='
>>> "{0:#<10}".format("Hi")
'Hi########'
  • 소수점

>>> a = 3.141592
>>> "{0:0.4f}".format(a)
'3.1416'
>>> "{0:10.4f}".format(a)
'    3.1416'
  • { 또는 }문자 표현하기

>>> "{{ Hi }}".format()
'{ Hi }'

▪ f 문자열 포매팅

>>> number = 3
>>> day = "two"
>>> f'I have {number} pens that i bought {day} days ago'
  • 표현식 사용 가능

'I have 3 pens that i bought two days ago'
>>> f'I have {number + 1} pens that i bought {day} days ago'
'I have 4 pens that i bought two days ago'
  • 딕셔너리 사용 가능

>>> d = {'number':3, 'day':'two'}
>>> f'I have {d["number"]} pens that i bought {d["day"]} days ago'
'I have 3 pens that i bought two days ago'
  • 정렬

>>> f'{"Hi":<10}'
'Hi        '
>>> f'{"Hi":>10}'
'        Hi'
>>> f'{"Hi":^10}'
'    Hi    '
  • 공백 채우기

>>> f'{"Hi":=^10}'
'====Hi===='
>>> f'{"Hi":#<10}'
'Hi########'
  • 소수점

>>> a = 3.141592
>>> f'{a:0.4f}'
'3.1416'
>>> f'{a:10.4f}'
'    3.1416'
  • { 또는 }문자 표현하기

>>> f'{{ Hi }}'
'{ Hi }'

👉 문자열 관련 함수들(8개)

문자열 자료형은 자체적 함수를 가지고 있다. 문자열 변수 뒤에 '.'을 붙인 다음 함수 이름을 써주면 된다.

▪ 문자 개수 세기(count)

>>> a = "bubble"
>>> a.count('b')
3

▪ 위치 알려주기1(find)

>>> a = "I have 3 pens that i bought two days ago"
>>> a.find('s')
12
>>> a.find('c')
-1

▪ 위치 알려주기2(index)

>>> a = "I have 3 pens that i bought two days ago"
>>> a.index('s')
12
>>> a.index('c')
Traceback (most recent call last):
  File "main.py", line 1, in <module>
    print(a.index('c'))
ValueError: substring not found

▪ 문자열 삽입(join)

이 함수는 문자열 뿐만 아니라 리스트나 튜플도 입력할 수 있다.

>>> ",".join('ABCDE')
A,B,C,D,E

▪ 대소문자 바꾸기(upper, lower)

>>> a = "hi"
>>> a.upper()
'HI'
>>> b = "HI"
>>> b.lower()
'hi'

▪ 공백지우기(lstrip, rstrip, strip)

>>> a = "   Hi   "
>>> a.lstrip()
'Hi   '
>>> a.rstrip()
'   Hi'
>>> a.strip()
'Hi'

▪ 문자열 바꾸기(replace)

>>> a = "My favorite food is pizza"
>>> a.replace('pizza','chicken')
'My favorite food is chicken'

▪ 문자열 나누기(split)

괄호 안에 아무것도 넣어 주지 않으면 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나눈다.

>>> a = "My favorite food is pizza"
>>> a.split()
['My' ,'favorite' ,'food' ,'is' ,'pizza']
>>> b = "a;b;c;d"
>>> b.split(";")
['a', 'b', 'c', 'd']

❗ 문자열은 바꿀 수 없는 값

>>> a = pithon
>>> a[1] = 'y'
Traceback (most recent call last):
  File "main.py", line 2, in <module>
    a[1] = "y"
TypeError: 'str' object does not support item assignment

❗ 문자열 포맷 코드

코드설명
%s문자열(String)
%c문자 1개(character)
%d정수(Integer)
%f부동소수(floating-point)
%o8진수
%x16진수
%%Literal %(문자 % 자체)

❗ find 와 index의 차이

find와 index 둘 다 문자열 중 가장 먼저 나온 위치를 반환한다. 하지만 찾는 문자나 문자열이 존재하지 않는다면 find는 -1을, index는 오류를 발생시킨다.

좋은 웹페이지 즐겨찾기