[Python] Chapter4 문자열

4 분 소요

Chapter4 문자열

문자열 자료형

  • 문자열 (String) 은 연속된 문자들의 모임을 의미
  • 문자열은 문자로 구성된 순서가 있는 수열
    • 문자열은 일단 생성하면 그 내용을 바꿀 수 없음
    • indexing, slicing 기법을 사용하여 데이터 참조
  • 큰따옴표 , 작은 따옴표 , 큰따옴표 3 개 연속 , 작은따옴표 3 개 연속 중 어느 것으로 시작해서 양쪽 둘러싸기로 문자열을 정의
  • 문자열의 데이터가 여러 줄인 경우
    • 문자열 데이터에 줄바꿈 문자 n 을 삽입
    • 연속된 작은따옴표 3 개 또는 큰따옴표 3 개 사용
  • 현재 입력 창의 가로 길이보다 더 긴 문자열을 입력할 경우는 기호를 사용하여 여러 줄에 걸쳐 작성할 수 있음 줄바꿈이 아님

특수문자

  • 프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 문자 조합
    • 주로 출력물을 보기 좋게 정렬하는 용도로 이용
    • backslash(/) 와 단일 문자로 구성된 조합으로 코딩 시 표현할 수 없는 문자 또는 control 들을 표시

문자열 연산

    • 연산자 : 두 문자열 연결하기
    • 연산자 : str * n 인 경우 문자열 str 을 n 번 반복
  • in 연산자
    • 지정된 부분이 문자열 안에 존재하는지를 확인
    • 있으면 True 를 반환 , 없으면 False 를 반환
  • not in 연산자 (in 연산자 반대 개념)

문자열 인덱싱

  • 인덱스는 문자열의 각 문자마다 번호를 매기는 것
  • 인덱스 범위
    • 양수 인덱스 : 0 ~ len (문자열) 1
    • 음수 인덱스 : len (문자열 ) ~ 1
    • len ( 문자열 ) 함수 : 입력 받은 문자열의 길이를 반환
  • 인덱스 표기 방식은 대괄호 ( [ ] ) 안에 인덱스 번호를 기입하여 해당 문자열에서 지정한 문자열을 참조하는 것

문자열 슬라이싱

  • 문자열의 인덱스를 기반으로 문자열의 부분 문자열을 반환 원본 문자열 은 그대로 유지 하는 방법
  • 문자열에서 일부 문자들 추출에 사용
  • 인덱싱과 슬라이싱은 다른 sequence 데이터 형 (list, 에서도 사용 가능
  • 문자열 slicing 표기법
    • string[ start : end : step]
      • start: 시작 인덱스 값 . default 값은 0
      • end: (end 1) 인덱스까지 추출 . default 값은 len (문자열)
      • step: 추출 간격 . default 값은 1
  • 문자열의 일부를 추출하여 새로운 변수에 저장
    • 문자열 을 슬라이싱해서 새로운 변수 a 에 저장해도 원본 문자열은 변하지 않음
  • 문자열의 데이터는 변경할 수 없음 .
    • 문자열 객체는 변경 불가능 . (immutable 한 자료형)
    • 문자열 객체가 일단 생성되면 , 그 객체의 내용은 변경될 수 없음 .
    • Pithon 이라는 문자열을 “Python” 으로 변경안됨. 에러 발생.

문자열 포맷팅(%)

  • 문자열 포맷 코드 출력 형식 지정 문자
코드 설명
%s 문자열 (String). 어떤 데이터 형의 값이든 문자열로 변환
%c 문자 1 개
%d 정수
%f 부동소수 (floating point)
%o 8 진수
%x 16 진수
문자 % 자체

▪ 특정 서식에 맞춰 숫자를 출력 하는 것이 필요할 때 사용. ▪ 실수 서식 지정

print("average = %10.2f " % 57.467657)
print("average = %10.2f" % 12345678.923)
print("average = %10.2f" % 57.4)
print("average = %10.2f" % 57)

▪ 정수 서식 지정

print("average = %10d" % 59832)

문자열 포맷팅 str.format()

  • str.format () : 문자열 포맷팅의 와 유사
    • 문자열 오브젝트의 메소드 format() 을 사용
    • 문자열에 값을 삽입하고 싶은 위치에 중괄호 {} 지정 .
    • format() 함수의 인수로 삽입될 데이터를 지정
코드 설명 코드 설명
8.3f 소숫점이하 3 자리 실수 (8 자리) , 천 단위마다 콤마 삽입
8.3e 소숫점이하 3 자리 지수 (8 자리) 10,d 10 자리 정수 천 단위마다 콤마
5d 5 자리 정수 08d 8 자리 정수 남는 자리는 0 을 붙임
10 10 글자로 표시 +.2f 소수점이하 2 자리 실수 항상 부호
*^30 30 글자 가운데 좌우는 * 표시 ) .2% 소수점이하 2 자리 백분율
print (("{2}, {0}, { 1}".format( 1,2,3))# 3, 1, 2
print ((""||{: 8.3f}||"".format( 3.1415926))# |
print (("{:"{:++. 2f}".format( 3.1415926))# +3.14
print (("|{: 8.3e}|".format( 314.15926))# |3.142e+
print (("|{: 10d}|".format( 12345))# |
print 0 10 d}|"d}|".format( 12345))# |
print (("{:"{:. 2%}"}".format(1/ 3))# 33.33%
x = " hello"; y = abc
print (((("{"{0[1] 1]}, 1[2] 2]}"}". x,y ))))# e, c
print (("{:"{:*^12 }"}". format(" center"))))# ***

문자열 메소드

  • str.split () / str.split 구분자 (’’)
    • split() 메소드의 인수가 없는 경우는 default 구분자인 space
    • 인수로 받은 구분자를 기준으로 문자열을 분리
    • 분리된 각각은 또 다른 문자열
    • 분리된 문자열들을 리스트 (list) 데이터형 오브젝트의 원소로 담아 반환
    • 리스트 데이터형은 추후에 다룸
메소드 설명
lower() 문자열 데이터를 모두 소문자로 바꾼 문자열을 반환
upper() 문자열 데이터를 모두 대문자로 바꾼 문자열을 반환
islower() 문자열 내의 모든 문자들이 소문자이면 , True 를 반환
isupper() 문자열 내의 모든 문자들이 대문자이면 , True 를 반환
isalpha() 문자열이 알 파벳 영문 , 한글 등 으로만 구성되어 있으면 True 를 반환
isnumeric() 문자열이 숫자 로만 구성되어 있으면 True 반환
isalnum() 문자열이 알파벳과 숫자로만 구성되어 있으면 True 반환
swapcase () 문자열 데이터의 대소문자를 상호 변환한 문자열 반환
title( ) 각 단어의 제일 앞 글자만 대문자로 변환한 문자열 반환
replace() 문자열 내에서 지정한 문자열을 새로운 문자열로 바꾼 전체 문자열을 반환
startswith () 문자열이 매개변수로 입력한 문자열로 시작 하면 True 반환
endswith () 문자열이 매개변수로 입력한 문자열로 끝나 면 True 반환
find() 문자열 내에서 매개변수로 입력한 문자열이 시작하는 인덱스를 반환 존재하지않으면 1 을 반환 . 여러 번 존재하면 첫번째 발견하는 인덱스 반환
rfind () 문자열 내에서 매개변수로 입력한 문자열 을 뒤에서부터 찾아서 인덱스 반환 존재하지 않으면 1 을 반환
count() 문자열 내에서 매개변수로 입력한 문자열이 몇 번 있는지 그 개수를 반환
strip() 문자열 양쪽에 있는 공백을 제거 한 문자열 반환 ( lstrip () / rstrip (): 왼쪽 오른쪽에서 공백제거
center(width) 주어진 폭의 가운데 중심으로 정렬된 문자열을 반환 ( ljust (width) rjust (width): 왼쪽오른쪽 중심으로 정렬

댓글남기기