본문 바로가기
프로그래밍/파이썬

[파이썬] 문자열

by kastori 2022. 1. 19.
반응형

 

 

문자열 생성

문자열 생성 하는 방법

  - " ", ' ', """ """, ''' ''' 사이에 문자열을 집어넣어 생성할 수 있다.
  - 여러줄인 경우 \n을 사용하여 적거나, ''' ''', """ """ 사이에 문자열을 집어넣어 여러 줄로 된 문자열을 생성할 수 있다.

#문자열 생성
>>> s = "hello World"
>>> s
'Hello World'

# 여러줄 입력
>>> multi = """
... 12345
... 67890
... """
>>> print(multi)
12345
67890
>>>

 

문자열 연산, 인덱싱, 슬라이싱

1. 문자열 연산

#문자열 더하기
>>> a = "Hello"
>>> b = "World"
>>> a + b
'HelloWorld'

#문자열 곱하기
>>> a = "Python"
>>> a * 3
'PythonPythonPython'

#문자열 길이 구하기
>>> a = "Hello World"
>>> len(a)
11

2. 문자열 인덱싱, 슬라이싱

J u s t   d o   i t
0 1 2 3 4 5 6 7 8 9
#문자열 인덱싱
>>> a = "Just do it"
>>> a[0]
'J'
>>> a[9]
't'
>>> a[-1]
't'

#문자열 슬라이싱 (a[시작 인덱스: 끝 인덱스])
>>> a[0:4]
'Just'
>>> a[5:7]
'do'
>>> a[:]
'Just do it'
>>> a[:4]
'Just'
>>> a[4:]
' do it'

 

문자열 포매팅

 1. 문자열 포맷 코드

코드 설명
%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)
주의 

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

>>> "주식이 %d%% 올랐다. " % 30
"주식이 30% 올랐다.

 

2. format 함수를 사용한 포매팅

 문자열의 format 함수를 사용하여 포매팅할 수 있다.

#숫자 바로 대입하기
>>> "1 2 3 {0}".format(4)
'1 2 3 4'

#문자열 바로 대입하기
>>> "one two three {0}".format("four")
'one two three four'

#2개 이상의 값 넣기
>>> m = 1
>>> d = 19
>>> "today is {0}.{1}".foramt(m,d)
'today is 1.19'

#왼쪽 정렬 :<10 표현식을 사용하면 치환되는 문자열을 왼쪽으로 정렬하고 문자열의 총 자릿수를 10으로 맞출 수 있다.
>>> "{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 = 1.23456
>>> "{0:0.3f}".format(a) #소수점 3자리 까지만 표현
'1.235'
>>> "{0:10.3f}".format(a) # 소수점 3자리까지 표현하고 총 자리수를 10으로 맞춤
'     1.235'

#f문자열 포매팅(파이썬 버전 3.6이상 부터 사용가능, 문자열 안에서 변수와 +, -와 같은 수식 사용가능)
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이는 {age+1}입니다.'
'나의 이름은 홍길동입니다. 나이는 31입니다.'

#소수점 표현
>>> a = 1.23456
>>> f"{a:0.3f}".format(a) #소수점 3자리 까지만 표현
'1.235'
>>> f"{a:10.3f}".format(a) # 소수점 3자리까지 표현하고 총 자리수를 10으로 맞춤
'     1.235'

 

 

문자열 관련 함수들

메서드 설명
str.count(x) str 문자열에서 x의 개수 세기
str.find(x) str 문자열에서 x의 위치 인덱스 반환 없으면 -1
str.index(x) str 문자열에서 x의 위치 인덱스 반환 없으면 에러를 발생시킴
str.join(x) x문자열 사이에 str을 삽입한다. 리스트나 튜플도 사용가능
str.upper() 소문자 -> 대문자
str.lower() 대문자 -> 소문자
str.rstrip() 오른쪽 공백 지우기
str.lstrip() 왼쪽 공백 지우기
str.strip() 양쪽 공백 지우기
str.replace(x,y) str 문자열에서 x(변경될 문자열)를 y(변경할 문자열)로 치환
str.split(x) x가 공백이면 str을 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열 나눔
특정 값이 있을 경우 괄호 안의 구분자로 해서 문자열 나누어 줌
str.zfill(x) x보다 str문자열 길이가 작을 때 작은 크기 만큼 앞 부분을 0으로 채움
#count()
>>> str = "apple"
>>> str.count('p')
2

#find()
>>> str = "Hello world"
>>> str.find('o')
4
>>> str.find('a')
-1

#index()
>>> str = "Hello world"
>>> str.index('o')
4
>>> str.index('a')	#없으면 에러 발생
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

#join()
>>> "*".join("1234")
'1*2*3*4'
>>> "*".join(['1','2','3','4'])
'1*2*3*4'

#upper, lower
>>> str = "PTYhon"
>>> str.upper()
'PYTHON'
>>> str.lower()
'python'

#lstrip(), rstrip(), strip()
>>> str = "   python   "
>>> str.lstrip()
'python   '
>>> str.rstrip()
'   python'
>>> str.strip()
'python'

#split()
>>> str = "Python split ex"
>>> str.split()
['Python', 'split', 'ex']
>>> str = "Python-split-ex"
>>> str.split('-')
['Python', 'split', 'ex']

#zfill()
>>> str = '123'
>>> str.zfill(5)
00123

 

마무리

공부하면서 자바보다는 문자열에 큰 강점이 있어 보였다. 요즘 알고리즘에서 문자열을 처리하는 과정이 있는데, 파이썬을 사용하면 자바보다 편하게 할 수 있을 거 같다.

 

관련 글

 

02-2 문자열 자료형

[TOC] ## 문자열이란? 문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다. 예를 들어 다음과 같은 것들이 문자열이다. ```{.no-h ...

wikidocs.net

 

반응형

'프로그래밍 > 파이썬' 카테고리의 다른 글

[파이썬] 튜플  (0) 2022.01.18
[파이썬] 수 자료형  (0) 2022.01.12
[파이썬] 리스트  (0) 2022.01.10
[파이썬] 알고리즘 기본 문법  (0) 2022.01.06

댓글