프로그래밍 기초 in Python 배우기 002
파이썬 자료형
문자열
- 문자들의 집합
# 큰 따옴표, 작은 따옴표로 표현
"python"
'python'
"""python 3"""
'''python 3'''
# 큰 따옴표안에 작은 따옴표
"'hello'"
# 작은 따옴표안에 큰 따옴표
'"HELLO"'
# 백슬래시
"\'Hello\'"
# 줄바꾸기 \n 사용
"Life is \n so cool"
# 줄바꾸기 """, ''' 사용
"""
Life is
so cool
"""
'''
Life is
so cool
'''
문자열 연산
# 문자열 연결
> a = 'Life is'
> b = 'so cool'
> a + b
'Life is so cool'
# 문자열 곱하기
> a = "Love"
> a * 2
'LoveLove'
문자열 인덱싱과 슬라이싱
# 문자열 인덱스
> a = 'Life is so cool'
> a[6]
s
> a[-1]
l
# 문자열 슬라이싱
> a = 'Life is so cool'
> a[0:3] # 인덱스 0에서 3앞까지의 문자열
Lif
> a[6:]
s so cool
> a[:10]
Life is so;
# 문자열 나누기
> a = "2021030312:12:00"
> year = a[:4]
> day = a[4:8]
> time = a[8:]
> year
'2021'
> day
'0303'
> time
'12:12:00'
문자열 포매팅
# 숫자
> "I went %d days ago." % 3
# 문자열
> "I went %s days ago." % "three"
# 숫자, 문자열
number = 3
unit = "weeks"
> "I went %d $s ago." $ (number, unit)
문자열 포맷 코드
코드 | 설명 |
---|---|
%s | 문자열(String) |
%c | 문자 1개(character) |
%d | 정수(Integer) |
%f | 부동소수(floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 % 자체) |
포맷 코드와 숫자
# 정렬과 공백
> "%10s" % "hi"
' hi'
# 소수점
> "%0.4f" % 3.42134234
'3.4213'
# 조합
> "%10.4f" % 3.42134234
' 3.4213'
format 함수를 사용한 포맷팅
# 값 대입하기
> "I went {0} {1} ago.".format(3, "weeks")
'I went 3 weeks ago.'
# 변수명으로 대입하기
> "I went {number} {unit} ago.".format(number=3, unit="weeks")
'I went 3 weeks ago.'
# 정렬 포맷팅
> "{0:<5}".format("hi")
'hi '
> "{0:>5}".format("ago")
' ago'
> "{0:^8}".format("hi")
' went '
# 소수점 표현
> pi = 3.42134234
> "{0:0.3f}".format(pi)
'3.421'
# 중괄호
> "".format()
'{ brace }'
f 문자열 포매팅
- python 3.6 부터 f 문자열 포매팅 사용가능
> name = '홍길동'
> age = 30
> f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
> d = {'name':'홍길동', 'age':30}
> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
> f'{"hi":<6}' # 왼쪽 정렬
'hi '
> f'{"hi":>6}' # 오른쪽 정렬
' hi'
> f'{"hi":^6}' # 가운데 정렬
' hi '
> f'{"hi":=^6}' # 가운데 정렬하고 '=' 문자로 공백 채우기
'==hi=='
> f'{"hi":!<6}' # 왼쪽 정렬하고 '!' 문자로 공백 채우기
'hi!!!!'
pi = 3.42134234
> f'{y:0.3f}' # 소수점 4자리까지만 표현
'3.421'
> f'{y:6.3f}' # 소수점 4자리까지 표현하고 총 자리수를 10으로 맞춤
' 3.421'
> f''
'{ brace }'
문자열 관련 함수들
# 문자 개수
> "tree".count('e')
2
# 문자 위치 find
> "Life is so cool".find('f')
2
> "Life is so cool".find('k')
-1
# 문자 위치 index
> "Life is so cool".index('s')
6
> "Life is so cool".index('d')
-1
# 문자열 삽입 join
> ':'.join('life')
'l:i:f:e'
> ":".join(['l', 'i', 'f', 'e'])
'l:i:f:e'
# case 변환
> small = "life"
> small.upper()
'LIFE'
> big = "LIFE"
> big.lower()
'life'
# 공백지우기 왼쪽 lstrip
> text = " life "
> text.lstrip()
'life '
# 공백지우기 오른쪽 rstrip
> text = " life "
> text.lstrip()
' life'
# 공백지우기 strip
> text = " life "
> text.strip()
'life'
# 문자열 바꾸기 replace
> "Life is so cool".replace("Life", "Weather")
'Weather is so cool'
# 문자열 나누기 split
> "Life is so cool".split()
['Life', 'is', 'so', 'cool']
> b = "l:i:f:e"
>>> b.split(':')
['l', 'i', 'f', 'e']
참고
- [https://wikidocs.net/13]