EverGiver

02-2 문자열 자료형 본문

Python/문법

02-2 문자열 자료형

친절한개발초보자 2021. 7. 5. 13:20
728x90

문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다.

>>> "Life is too short, You need Python"
>>> "a"
>>> "123"
>>> 'love'
문자열 작성 및 사용
  1. 큰따옴표(")로 양쪽 둘러싸기
  2. 작은따옴표(')로 양쪽 둘러싸기
  3. 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기
  4. 작은따옴표 3개를 연속(''')으로 써서 둘러싸기
작은따옴표 및 큰따옴표 사용
  • 문자열에 작은따옴표 (') 포함시키기
    >>> "Python's favorite food is apple"
  • 문자열에 큰따옴표 (') 포함시키기
    >>> "Python's favorite food is apple"
  • 백 슬래시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시킨다

백 슬래시(\)를 작은따옴표(')나 큰따옴표(") 앞에 삽입하면 백슬래시(\) 뒤의 작은따옴표(')나 큰따옴표(")는 문자열을 둘러싸는 기호의 의미가 아니라 문자 (') , (") 그 자체를 뜻하게 된다.

>>> 'Python\'s favorite food is apple'
>>> "\"Python is very easy.\" he says."
여러 줄인 문자열
  • 줄을 바꾸는 이스케이프 코드'\n'
    >>> "Life is too short\nYou need python"
  • 연속된 작은따옴표 3개(''') 또는 큰따옴표 3개(""") 사용
    #작은따옴표 3개
    >>> multiline = '''
    ... Life is too short
    ... You need python
    ... '''
    
    #큰따옴표 3개
    >>> multiline = """
    ... Life is too short
    ... You need python
    ... """
이스케이프 코드
코드 설명
\n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ 문자 \를 그대로 표현할 때 사용
\' 작은따옴표(')를 그대로 표현할 때 사용
\" 큰따옴표(")를 그대로 표현할 때 사용
\r 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f 폼 피드(줄 바꿈 분자, 현재 커서를 다음 줄로 이동)
\a 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
\b 백스페이스
\000 널 문자

→ 활용 빈도 높은 것 : \n, \t, \\, \', \"

문자열 연산
  • 문자열 더해서 연결
>>> head = "Python"
>>> tail = "is fun!"
>>> head + tail
'Python is fun!'
  • 문자열 곱하기
>>> a = "Python"
>>> a * 2
'PythonPython'
  • 문자열 길이 구하기

len 함수 사용

>>> a = "Life is too short"
>>> len(a)
17
문자열 인덱싱과 슬라이싱

인덱싱(Indexing)이란 무엇인가를 '가리킨다'는 의미, 슬라이싱(slicing)은 무엇인가를 '잘라낸다'는 의미

 

문자열 인덱싱

>>> a = "Life is too short, You need Python"
>>> a[3]
'e'
>>> a[0]
'L'
>>> a[-1]
'n'

"파이썬은 0부터 숫자를 센다!!!!"

문자열 슬라이싱

#한 문자만을 뽑아 이용
>>> a = "Life is too short, You need Python"
>>> b = a[0] + a[1] + a[2] + a[3]
>>> b
'Life'

#슬라이싱 사용
>>> a = "Life is too short, You need Python"
>>> a[0:4]
'Life'

슬라이싱 기법

a[시작 번호:끝번호]

→ 끝 번호 부분을 생략하면 시작 번호부터 그 문자열의 끝까지 뽑아낸다.

→ 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다.

→ 시작 번호와 끝 번호를 생략하면 문자열의 처음부터 끝까지를 뽑아낸다.

문자열 포매팅

문자열 포매팅

  • 숫자 바로 대입
    >>> "I eat %d apples." %3
    'I eat 3 apples.'
  • 문자열 바로 대입
    >>> "I eat %s apples." %"five"
    'I eat five apples.'
  • 숫자 값을 나타내는 변수로 대입
    >>> number = 3
    >>> "I eat %d apples." % number
    'I eat 3 apples.'
  • 2개 이상의 값 넣기
    >>> 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.'

문자열 포맷 코드

코드 설명
%s 문자열(String)
%c 문자 1개(Character)
%d 정수(Integer)
%f 부동 소수(Floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 '%' 자체)

포맷 코드와 숫자 함께 사용

  • 정렬과 공백
    >>> "%10s" % "hi"
    '        hi'
    → %10s는 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨 둔다
                    h i
    >>> "%-6sjane" % 'hi'
    'hi    jane'​
    → %-6s는 반대쪽인 왼쪽 정렬
    h i         j a n e
  • 소수점 표현
    >>> "%0.4f" %3.42134234
    '3.4213'
    → 3.42134234를 소수점 네 번째 자리까지만 나타내고 싶은 경우
    → '.' : 소수점 포인트를 말하고 그 뒤의 숫자 4는 소수점 뒤에 나올 숫자의 개수를 의미
    >>> "%10.4f" % 3.42134234
    '    3.4213'​
    → 숫자 3.42134234를 소수점 네 번째 자리까지만 표시하고 전체 길이가 10개인 문자열 공간에서 오른쪽으로 정렬
            3 . 4 2 1 3

format 함수를 사용한 포매팅

  • 숫자 바로 대입
    >>> "I eat {0} apples".format(3)
    'I eat 3 apples'
  • 문자열 바로 대입
    >>> "I eat {0} apples".format("five")
    'I eat five apples'
  • 숫자 값을 가진 변수로 대입
    >>> number = 3
    >>> "I eat {0} apples".format(number)
    'I eat 3 apples'
  • 2개 이상의 값 넣기
    >>> number = 10
    >>> day = "three"
    >>> "I ate {0} apples. So I was sick for {1} days.".format(number, day)
    'I ate 10 apples. So I was sick for three days.'
  • 이름으로 넣기
    >>> "I ate {number} apples. So I was sick for {day} days.".format(number=10, day=3)
    'I ate 10 apples. So I was sick for 3 days.'
  • 왼쪽 정렬
    >>> "{0:<10}".format("hi"
    'hi        '
    → :<10 사용하면 치환되는 문자열을 왼쪽으로 정렬하고 문자열의 총 자릿수를 10으로 맞춘다
  • 오른쪽 정렬
    >>> "{0:>10}".format("hi")
    '        hi'
  • 가운데 정렬
    >>> "{0:^10}".format("hi")
    '    hi    '
  • 공백 채우기
    >>> "{0:=^10}".format("hi")
    '====hi===='
    >>>"{0:!<10}".format("hi")
    'hi!!!!!!!!'
  • 소수점 표현
    >>> y = 3.42134234
    >>> "{0:0.4f}".format(y)
    '3.4213'
    
    >>> "{0:10.4f}".format(y)
    '    3.4213'
  • { 또는 } 문자 표현
    >>> "{{ and }}".format()
    '{ and }'

f 문자열 포매팅

파이썬 3.6 버전부터 f 문자열 포매팅 기능 사용!!!

>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이가 {age}입니다.'
'나의 이름은 홍길동입니다. 나이가 30입니다.'
  • 딕셔너리
    >>> d = {'name' : '홍길동', 'age' : 30}
    >>> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
    '나의 이름은 홍길동입니다. 나이는 30입니다.'
  • 정렬
    >>> f'{"hi":<10}'
    'hi        '
    >>> f'{"hi":>10}'
    '        hi'
    >>> f'{"hi":^10}'
    '    hi    '
  • 공백 채우기
    >>> f'{"hi":=^10}'
    '====hi===='
    >>> f'{"hi":!<10}'
    'hi!!!!!!!!'
  • 소수점
    >>> y = 3.42134234
    >>> f'{y:0.4f}'
    '3.4213'
    >>> f'{y:10.4f}'
    '    3.4213'
  • { } 문자
    >>> f'{{ and }}'
    '{ and }'
문자열 관련 함수
  • 문자 개수 세기 (count)
    >>> a = "hobby"
    >>> a.count('b')
    2
  • 위치 알려주기 1 (find)
    >>> a = "Python is the best choice"
    >>> a.find('b')
    14
    >>> a.find('k')
    -1 #존재하지 않는 경우
  • 위치 알려주기 2 (index)
    >>> a = "Life is too short"
    >>> a.index('t')
    8
    >>> a.index('k')
    #오류 발생
  • 문자열 삽입 (join)
    >>> ",".join('abcd')
    'a,b,c,d'
    
    #리스트 사용
    >>> ",".join(['a', 'b', 'c', 'd'])
    'a,b,c,d'
  • 소문자를 대문자로 바꾸기 (upper)
    >>> a = "hi"
    >>> a.upper()
    'HI'
  • 대문자를 소문자로 바꾸기 (lower)
    >>> a = "HI"
    >>> a.lower()
    'hi'
  • 왼쪽 공백 지우기 (lstrip)
    >>> a = " hi "
    >>> a.lstrip()
    'hi '
  • 오른쪽 공백 지우기 (rstrip)
    >>> a = " hi "
    >>> a.rstrip()
    ' hi'

  • 양쪽 공백 지우기(strip)
    >>> a = " hi "
    >>> a.strip()
    'hi'

  • 문자열 바꾸기 (replace)
    >>> a = "LIfe is too short"
    >>> a.replace("Life", "Your leg")
    'Your leg is too short'

  • 문자열 나누기 (split)
    >>> a = "Life is too short"
    >>> a.split() #공백을 기준으로 문자열 나눔
    ['Life', 'is', 'too', 'short']
    >>> b = "a:b:c:d"
    >>> b.split(':') #:기호를 기준으로 문자열 나눔
    ['a', 'b', 'c', 'd']

728x90

'Python > 문법' 카테고리의 다른 글

02-6 집합 자료형  (0) 2021.07.29
02-5 딕셔너리 자료형  (0) 2021.07.27
02-4 튜플 자료형  (0) 2021.07.25
02-3 리스트 자료형  (0) 2021.07.23
02-1 숫자형  (0) 2021.07.05
Comments