6. 문자열
문자열 (string)
- 값을 변경할 수 없으며 순서가 있음
- 큰따옴표(" ")나 작은따옴표(' ')로 구분
- 같은 따옴표를 세 번씩 쓰면 여러 줄 표현 가능
family = """ 아빠
엄마
언니
진아 """
문자열 포맷팅
% 연산자를 이용해 문자열에 숫자, 문자열 등을 대입
문자열을 자유롭게 표현하는 방법
- %d : 정수형(int) 숫자를 대입
예시)
print ('%d' % 3, 6, 9.5)
# 3 6 9.5
print ('%d %d' % (3, 9.6))
# 3 9
print ('%d %d %d' % (3, 6, 9.5))
# 3 6 9
print ('%d, %d, %d' % (3, 6, 9.5))
# 3, 6, 9
print('%d x %d = %d' % (2, 3, 2 * 3))
# 2 x 3 = 6
예시에서 보다시피 한 %d 연산자당 하나의 정수형만 가능
여러개의 정수를 사용하고 싶으면
('%d %d ... n개' % (1, 2, ..., n)와 같이 사용
연산자 사이에 " , " 입력하면 print에 "," 함께 출력
- %f : 실수형(float) 숫자를 대입
예시)
print ('%f' % 3, 6, 9.5)
# 3.000000 6 9.5
print ('%f %f' % (3, 9.6))
# 3.000000 9.600000
print ('%f %f %f' % (3, 6, 9.5))
# 3.000000 6.000000 9.500000
print ('%f, %f, %f' % (3, 6, 9.5))
# 3.000000, 6.000000, 9.500000
예시에서 보다시피 한 %f 연산자당 하나의 정수형만 가능
여러개의 정수를 사용하고 싶으면
('%f %f ... n개' % (1.0, 2.0, ..., n.0)와 같이 사용
연산자 사이에 " , " 입력하면 print에 "," 함께 출력
- %s : 문자열(string)을 대입
예시)
print ('%s' % 'jina')
# jina
print ('%s %s' % ('jina','string'))
# jina string
print ('%s %s' % (3, 9.6))
# 3 9.6
%s는 자동으로 % 뒤에 있는 값을 문자열로 바꾸기 때문에 숫자를 입력해도 입력이 됨
- 여러개의 연산자 사용
number = 10
day = "three"
"I ate %d apples. so I was sick for %s days." % (number, day)
# I ate 10 apples. so I was sick for three days.'
format()
- 포맷팅을 수행하는 문자열의 메소드
- 중괄호 { }를 이용해 값을 대입
- % 연산자보다 파이썬스러운 방법
예시)
'my name is { }' .format('jina')
# my name is jina
'my name is { } your name is { }'.format('jina','Gina')
# my name is jina your name is Gina
print('{ } x { } ={ }' .format(2, 3, 2 * 3))
# 2 x 3 = 6
- 중괄호 안에 숫자를 넣어 순서 지정 가능
- 숫자는 0부터 지정
예시)
'my name is {1} your name is {0}'.format('jina','Gina')
# my name is Gina your name is jina
print ('{1} x {0} ={2}' .format(2, 3, 2 * 3))
# 3 x 2 = 6
문자열 인덱싱
- index를 이용해 각 문자에 접근
- 위치는 0부터 시작
- 공백 포함
예시)
print ('abcdefg hijk' [0]) # a
print ('abcdefg hijk' [7]) #
한글 ="가나다라마바사"
print (한글 [0]) # 가
print (한글 [6]) # 사
- 음수를 인덱스로 사용 가능
가장 뒤의 값을 -1부터 해서 거꾸로 카운팅
한글 ="가나다라마바사"
print (한글 [-1]) # 사
print (한글 [6]) # 사
print (한글 [-7]) # 가
문자열 슬라이싱
- 문자열에서 여러 값을 한꺼번에 잘라옴
- 콜론(:)을 이용해 여러 값을 한꺼번에 가져옴
- [n:m] = n번부터 m번 전까지의 문자를 가져옴
예시)
슬라이싱 = "0123456789"
print (슬라이싱 [0:5]) # 01234
print (슬라이싱 [3:4]) # 3
슬라이싱2 = "01234 5678"
print (슬라이싱2 [3:7]) # 34 5
- 앞이나 뒤 숫자 생략 가능
예시)
슬라이싱 = "0123456789"
print (슬라이싱 [:5]) # 01234
print (슬라이싱 [4:]) # 456789
문자열 메서드
string. split( ) : 문자열을 공백 기준으로 분리하는 메서드 (메서드 - 특정 객체만 사용할 수 있는 함수 의미)
print ('jina python study'.split( ))
// ['jina', 'python', 'study']
print(fruit. split())
// ['바나나', '사과', '딸기', '귤']
fruit = "바나나 사과 딸기 귤"
fruit_list = fruit.split()
print (fruit_list[0])
// 바나나
독스트링
- 문서화 문자열(Documentation string)
- 주석으로 사용하는 문자열 (함수가 어떤 일을 수행하는지 설명)
- 보통 큰따옴표 세 개를 사용 (""" ~ """)
예시)
def polyline(t, n, length, angle):
"""n개의 선분을 길이 length만큼,
선분 사이의 각도는 angle만큼 그린다.
t는 거북이 객체.
"""
for i in range(n):
t.fd(length)
t.lt(angle)
보통 함수 시작 부분에서 함수 인터페이스를 설명하는 문자열
관례상 독스트링은 삼중 따옴표(""") 문자열 사용
ref) https://thebook.io/006878/ch04/09/
- " ~ " vs """ ~ """
- 삼중 따옴표는 여러줄 사용 가능

위 사진을 보면 " ~ " 는 한줄이 넘어가면 문자열 사용 불가능
그러나 """ ~ """ 는 여러줄에서 문자열 사용 가능
#을 이용하면 주석 사용 가능
"""독스트링도 주석처럼 사용"""
end 코드
- end: print() 함수에서 출력의 끝을 지정
예시)
print ('jina', end='python')
//jinapython
예시와 같이 출력할 문자 뒤에 end값을 붙여서 출력
이스케이프 코드
- 특정한 기능을 수행하기 위해 미리 정해둔 문자 조합
- \n : 줄 바꿈
- \t : tap 키
print ('jina\npython study')
# jina
# python study
print ('jina\tpython study')
// jina python study
print ('jina\tpython\nstudy')
# jina python
# study
'python > Python_김왼손의 미운코딩 새끼' 카테고리의 다른 글
Part 13 ~ 17 (0) | 2020.03.20 |
---|---|
Part 9 ~ 12 (0) | 2020.03.20 |
Part 7 ~ 8 (0) | 2020.03.19 |
Part 1 ~ 5 (0) | 2020.03.17 |
댓글