ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자료형] 문자
    Python/Python 기초 2020. 3. 4. 02:10

    문자열 표현

     

    Python에서의 문자열은 string이라고 하며 작은따옴표(') 또는 큰 따옴표(")를 사용하여 문자열로 만들 수 있습니다.

     

    "Life is too short, " 'You need Python!'

     

    이 외에도 작은 따옴표나 큰 따옴표를 중복 사용하여서도 표현할 수 있습니다.

     

    '''Life is too short,'''
    """You need Python!"""

     

    Hello Python, It's so Good 처럼 문자열 안에 작은따옴표나 큰 따옴표를 포함하고 싶은 경우에는 다음과 같은 방법으로 따옴표를 출력할 수 있습니다.

     

    1. 큰 따옴표안에 작은따옴표를 넣거나 작은따옴표 안에 큰 따옴표를 넣습니다.

    "Hello Python, It's so Good"

    이처럼 안에 사용된 작은 따옴표는 문자열을 만드는 기호로 인식되지 않습니다.

     

     

    2. \(백 슬래시) 문자를 같이 사용합니다.

    'Hello \"Python\"'
    
    "Hello \'Python\'"

     

    문자열이 길 경우 줄 바꿈을 하고 싶은 경우에는 \n을 사용하여 줄 바꿈을 할 수 있습니다.

     

    "Life is too short, You need Python" 이라는 문장에서 콤마(,)를 기준으로 줄 바꿈을 하고 싶은 경우 다음과 같이 사용하면 됩니다.

    >>> "Life is too short,\nYou need Python"
    Life is too short,
    You need Python

     

    [참고] 이스케이프 코드


    문자열 연산

     

    1. 더하기 연산

    2개의 문자열을 더하여 하나의 문자열로 만들 수 있습니다.

    >>> 'Hello' + ' Python'
    'Hello Python'
    
    >>> 'Hello' + ' ' + ' Python'
    'Hello Python'

     

    2. 곱하기 연산

    문자열을 반복하게 하여 출력합니다.

    >>> 'Hello' * 3
    'HelloHelloHello'
    
    >>> 'Hello' * 2 + ' Python'
    'HelloHello Python'

     

    3. 문자열 길이 구하기

     

    len 함수를 이용하면 문자열의 길이를 알 수 있습니다.

     

    >>> str = "Life is too short, You need Python"
    >>> len(str)
    34

    문자열 Indexting & Slicing

     

    1. Indexing

     

    Index번호는 0번부터 시작하고 HELLO PYTHON이라는 문자에 Indexing 번호를 매겨보면 아래와 같습니다.

    문자열의 시작인 H는 Index 번호가 0번이 되고 문자의 마지막인 N은 11번이 됩니다. (문자열에 존재하는 공백도 포함됩니다.)

     

    >>> str = "HELLO PYTHON"
    >>> str[2]
    'L'
    
    >>> str = "HELLO PYTHON"
    >>> str[5]
    ' '
    
    >>> str = "HELLO PYTHON"
    >>> str[9]
    'H'

     

    2. Slicing

     

    마이너스 문자(-), 콜론 문자(:)를 이용하여 범위를 지정하면 문자열 슬라이싱을 할 수 있습니다.

     

    >>> str = "HELLO PYTHON"
    >>> str[-3]
    'H'
    
    >>> str = "HELLO PYTHON"
    >>> str[:-3]
    'HELLO PYT'
    
    >>> str = "HELLO PYTHON"
    >>> str[2:-3]
    'LLO PYT'

    [주의] 마이너스 문자를 사용할 때 인덱스 번호는 -0번이 아닌 -1번부터 시작합니다.

    그 이유는 0과 -0은 같기 때문에 [0]을 하나 [-0]을 하나 같은 값이 나오기 때문입니다.

     

    또한 뽑아낸 슬라이싱을 통해 문자열 더하기도 할 수 있습니다.

     

    >>> str = "HELLO PYTHON"
    >>> str[2:-3]
    'LLO PYT'
    
    >>>'HE' + str[2:-3]
    'HELLO PYT'

     


    문자열 Formatting

     

    문자열의 중간에 어떤 특정 값을 삽입할 때 사용합니다.

     

    1. 숫자 대입

    >>> "I am %d years old." % 58
    'I am 58 years old.'

     숫자는 %d를 이용하여 넣을 수 있습니다.

     

    2. 문자열 대입

    >>> "I am %s years old." % "fifty eight"
    'I am fifty eight years old.'
    

    문자열은 %s를 사용하여 넣을 수 있고 넣는 문장에는 반드시 큰 따옴표나 작은따옴표를 사용하여 문자열로 만들어주어야 합니다.

     

    3. 변수 대입

    #변수에 숫자 대입
    >>> years = "58"
    >>> "I am %d years old." % years
    'I am 58 years old.'
    
    #변수에 문자 대입
    >>> years = "fifty eight"
    >>> "I am %s years old." % years
    'I am fifty eight years old.'
    

    위처럼 원하는 값을 변수에 넣어 사용할 수 있습니다.

     

    [참고] 문자열 포맷 코드

     

     

    Format 함수를 이용한 Formatting

     

     

    문자열에 format함수를 이용하면 좀 더 깔끔한 스타일로 사용할 수 있습니다.

     

    1. {Index}를 이용하여 넣기

    index를 이용하여 해당하는 위치에 원하는 문자 또는 숫자를 넣을 수 있습니다.

    >>> "I am {0} years old.".format(58)
    'I am 58 years old.'
    
    >>> "I am {0}{1} years old.".format(5,8)
    'I am 58 years old.'
    
    >>> "I am {0} {1} years old.".format('fifty',8)
    "I am fifty 8 years old."
    

     

    2. {name}을 이용하여 넣기

    변수를 설정하여 해당하는 위치에 원하는 문자 또는 숫자를 넣을 수 있습니다.

    >>> "I am {str} years old.".format(str='fifty eight')
    'I am fifty eight years old.'
    

     

    3. 정렬

    format함수를 이용하여 입력하는 문자를 왼쪽, 오른쪽, 가운데 등 정렬을 할 수 있습니다.

    #왼쪽 정렬
    >>> '{0:<10}'.format('1234')
    '1234 '
    
    #오른쪽 정렬
    >>> '{0:>10}'.format('1234')
    ' 1234'
    
    #가운데 정렬
    >>> '{0:^10}'.format('1234')
    ' 1234 '
    
    #공백에 문자 채우기
    >>> '{0:공^10}'.format('1234')
    '공공공1234공공공'
    

     

    4. f 문자열 Formatting

    파이썬 3.6 버전 이후부터는 f 문자열 포매팅 기능을 사용 할 수 있습니다.

    문자열 맨 앞에 f를 붙이면 사용이 가능합니다.

     

    >>> name = 'Yellow Apple'
    >>> f'name is {name}'
    'name is Yellow Apple'
    
    >>> age = 10
    >>> f'10년 후 나이 {age + 10}살'
    '10년 후 나이 20살'
    
    >>> f'{{ }}'
    '{ }'

    문자열 관련 함수

     

    count() : 특정 문자의 개수를 알려주는 함수

    >>> str = 'Life is too short, You need Python'
    >>> str.count('i')
    2
    >>> str.count('e')
    3
    >>> str.count('Y')
    1
    >>> str.count(' ')
    6
    >>> str.count(' ', 5)
    5
    >>> str.count(' ', 5, 12)
    2
    >>> str.count('x')
    0

     

    find() : 특정 문자의 위치를 알려주는 함수, 찾는 문자나 문자열이 존재하지 않으면 -1을 반환합니다.

     

    >>> str = 'Life is too short, You need Python'
    >>> str.find('i')
    1
    >>> str.find(' ')
    4
    >>> str.find(' ', 5)
    7
    >>> str.find(' ', 8, 12)
    11
    >>> str.find('x')
    -1

     

    index() : 특정 문자의 위치를 알려주는 함수, 찾는 문자나 문자열이 존재하지 않으면 에러가 발생합니다.

    >>> str = 'Life is too short, You need Python'
    >>> str.index('i')
    1
    >>> str.index(' ')
    4
    >>> str.index(' ', 5)
    7
    >>> str.index(' ', 8, 12)
    11
    >>> str.index('x')
    error

     

    join() : 문자열 중간에 삽입하는 함수

    >>> '/'.join('가나다라')
    '가/나/다/라'
    >>> str = '12345'
    >>> sep = ', '
    >>> sep.join(str)
    '1, 2, 3, 4, 5'
    >>> ','.join('1')
    '1'

     

    upper() : 소문자를 대문자로 바꾸는 함수

    >>> str = 'Life is too short, You need Python'
    >>> str.upper()
    'LIFE IS TOO SHORT, YOU NEED PYTHON'

     

    lower() : 소문자를 대문자로 바꾸는 함수

    >>> str = 'Life is too short, You need Python'
    >>> str.lower()
    'life is too short, you need python'

     

    lstrip() : 왼쪽 공백을 제거하는 함수

    >>> str = ' space '
    >>> str.lstrip()
    'space '

     

    rstrip() : 오른쪽 공백을 제거하는 함수

    >>> str = ' space '
    >>> str.rstrip()
    ' space'

     

    strip() : 양쪽 공백을 지우는 함수

    >>> str = ' space '
    >>> str.strip()
    'space'

     

    replace() : (대상 문자열, 바꿀 문자열) 처럼 사용하여 문자열 안의 특정값을 다른 값으로 치환해줍니다. 

    >>> str = 'Life is too short, You need Python'
    >>> str.replace('i', '1')
    'L1fe 1s too short, You need Python'
    >>> str.replace(', ', '\n')
    'Life is too short\nYou need Python'
    >>> print(str.replace(', ', '\n'))
    Life is too short
    You need Python

     

    split() : 특정 문자열을 기준으로 전체 문자열을 리스트로 변경합니다. 리스트는 다음에 순서에 설명하도록 하겠습니다.

    >>> str = 'Life is too short, You need Python'
    >>> str.split()
    ['Life', 'is', 'too', 'short,', 'You', 'need', 'Python']
    >>> str.split(', ')
    ['Life is too short', 'You need Python']
    >>> str.split('o')
    ['Life is t', '', ' sh', 'rt, Y', 'u need Pyth', 'n']

     


    다른 자료형을 문자열로 만들기

    앞에서 문자열을 숫자형으로 바꾸는 방법을 배웠습니다. 이처럼 다른 자료형도  str 을 앞에 붙여주면 문자열로 만들 수 있습니다.

    >>> str(123)
    '123'
    >>> str(False)
    'False'
    >>> str([1, 2, 3])
    '[1, 2, 3]'
    >>> str({'a', 'b', 'c'})
    "{'a', 'b', 'c'}"

     

    'Python > Python 기초' 카테고리의 다른 글

    [자료형] List  (0) 2020.03.29
    [자료형] 숫자형  (2) 2020.03.02

    댓글

Yellow Apple's LAB