[TIL] Python 자료형 - 문자형

이지예·2022년 4월 12일
0

Python

목록 보기
2/10

문자열 자료형

큰따옴표 혹은 작은따옴표를 세개씩 사용한 경우에는 따옴표 안에서 엔터 친 경우 출력에도 엔터가 적용된다. \n을 쳐도 엔터 효과를 내는데,
이를 이스케이프 코드라고 한다. 이스케이프 코드는 프로그래밍 할 때 사용할 수 있도록 미리 정의해둔 문자조합이다. 다른 이스케이프 코드로는
\r : 캐리지 리턴(줄바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f : 폼피드 (줄바꿈 문자, 현재 커서를 다음 줄로 이동)
\b : 백스페이스
\000 : 널문자
등이 있다.

<문자열 연산하기>
파이썬에서는 다른 언어와는 달리 문자를 더하거나 곱할 수 있다.

head="Python"
tail = "is fun"
head + tail #'Python is fun'

a="Python"
a*2 #'PythonPython'

print("="*10) #==========

<문자열 인덱싱과 슬라이싱>
인덱싱(indexing)이란 가리킨다는 의미이다.

a="Life is too short" 
a[3] #e
a[-1] #n
a[-0] #a[0]=L

문자열 안의 특정한 값을 뽑아내는 작업을 인덱싱이라고 한다.
-0은 0과 똑같기 때문에 뒤에서부터 읽는 작업은 -1부터 시작한다.

슬라이싱을 통해 문자열에서 단어를 뽑아낼 수도 있다.

b=a[0]+a[1]+a[2]+a[3] 
b #'Life'
a[0:4] #'Life'

이때 구간은 0<=a<4이므로 주의해야 한다.

a[0:5] #'Life ' 

공백도 동일한 문자로 취급되므로 위아래는 완전히 다른 문자열이다.

a[:] #'Life is too short'
a[5:-6] # 'is too'
#a[5]<=a<a[-6]이므로 구간을 주의해야 한다.
a[:5]+a[5:11]+a[11:] #'Life is too short'

a[:5]는 a[5]가 포함되지 않고 a[5:11]은 a[5]가 포함된다.

문자열을 다른 문자열로 바꾸려면?
문자열로 만들어진 변수에 문자열을 대입해서 바꿀수는 없다

a='pithon'
a[i]='y'  #에러. 문자열 자료형은 불변 자료형
#슬라이싱을 이용해서 만들어야 한다.
a[:1]+'y'+a[2:] #'python'

<문자열 포매팅>
문자열 안의 특정한 값을 바꿔주는 방법으로 문자열 안에 어떤 값을 삽입하는 방법이 있다.

'지금은 %d시다.'%3 #'지금은 3시다.'
'지금은 %s시다.'%#'지금은 세시다.'
number=3
'지금은 %d시다.'%number #'지금은 3시다.'
day='three'
'i ate %d apples %s days.' %(number, day)
#'i ate 3 apples three days.'

이 외에도
%c : 문자1개
%f : 부동 소수
%% : 문자% 그 자체

포매팅으로 공백을 이용한 정렬을 할 수도 있는데

'%10s' %'hi'
#'        hi' #전체 길이가 10인 문자열 공간에서 오른쪽 정렬하는 기능
#-10s인 경우에는 왼쪽정렬을 한다.
'%0.4f' %3.41234
#'3.4123
'%10.4f' %3.41234
#'    3.4123' #점 포함 10개 자리 오른쪽 정렬

format 함수를 사용해서 숫자나 문자를 바로 대입하는 경우도 있다.

'i ate {0} apples {1} days'.format(3,five)
#'i ate 3 apples five days' #변수를 생성해서 넣어줘도 된다.
'i ate {num} apples {day} days'.format(num=3, day=five)
# 'i ate 3 apples five days' 이렇게 인덱스 항목 대신 변수이름 넣는것도 가능하다.
'{0:<10}'.format('hi')
#'hi        '

^는 가운데 정렬 =^는 공백을=로 채움
0:0.4f를 저 안에 넣으면 소수점 4째자리까지만 표현
중괄호를 문자로 표현하고 싶으면 {{ }} 하면 중괄호 한 쌍만 나온다

f'{"hi":!<10}'  # 왼쪽 정렬하고 '!' 문자로 공백 채우기
'hi!!!!!!!!'

<f포메팅>
파이썬 3.6 이상 버전부터 사용 가능

name='ha'
f'문자열 {name}' #이런식으로 미리 사용된 변수 참조 하는 방법
age = 20
f'나이는 {age+1}' #이런식으로 문자열 안에서 수식도가능

딕셔너리 이용은 다음과 같다

d={'name':'이름','age':23}
f'이름은 {d['name']}이고 나이는 {d['age']}이다.'
#이름은 이름이고 나이는 23이다.'
#정렬은
f'{"hi":!<10}'
#'hi!!!!!!!!'

문자열 관련 함수들

a='hobby'
a.count('b')
#2
a.find('b')
#2 #문자열이 처음으로 나온 위치 반환. 위치는 0부터 시작. 없으면 -1 반환
a.index('b')
#2 #문자열이 처음으로 나온 위치 반환. 없으면 에러를 발생
",".join('abcd')
#'a,b,c,d' #문자열 사이에 삽입

리스트나 튜플도 입력으로 사용 가능

",".join(['a','b','c','d'])
#'a,b,c,d'
a.upper() #'HOBBY'. lower은 소문자

lstrip은 왼쪽 공백 지우기 rstrip은 오른쪽 공백 지우기 strip은 양쪽공백지우기

a = "Life is too short"
a.replace("Life", "Your leg")
'Your leg is too short'

a.split() #['Life','is','too','short']

split안에 넣는거로 나눌수도 있음

참고 사이트 : https://wikidocs.net/13

0개의 댓글