본문 바로가기
python/Python_김왼손의 미운코딩 새끼

Part 6

by 2cong 2020. 3. 19.

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.'

ref) https://wikidocs.net/13

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

댓글