반응형
문자열 생성
문자열 생성 하는 방법
- " ", ' ', """ """, ''' ''' 사이에 문자열을 집어넣어 생성할 수 있다.
- 여러줄인 경우 \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
마무리
공부하면서 자바보다는 문자열에 큰 강점이 있어 보였다. 요즘 알고리즘에서 문자열을 처리하는 과정이 있는데, 파이썬을 사용하면 자바보다 편하게 할 수 있을 거 같다.
관련 글
반응형
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] 튜플 (0) | 2022.01.18 |
---|---|
[파이썬] 수 자료형 (0) | 2022.01.12 |
[파이썬] 리스트 (0) | 2022.01.10 |
[파이썬] 알고리즘 기본 문법 (0) | 2022.01.06 |
댓글