Part 6

Jina·2020년 2월 24일
0
post-thumbnail

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

    fruit = '바나나 사과 딸기 귤'
    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

    0개의 댓글