python 문자열

김동완·2022년 4월 13일
0
post-thumbnail

String

Intro

글자 A를 메모리에 저장하는 방법은 각 문자에 대해서 대응되는 숫자를 정해놓고 이것을 메모리에 저장한다. 영어가 대소문자 합쳐서 52이므로 6비트(64가지)로 표현할 수 있다. 이를 코드체계라고 한다.

000000 -> 'a'
000001 -> 'b'

유니코드도 다시 Character Set으로 분류

  • USC-2
  • USC-4
  • 유니코드를 저장하는 변수의 크기를 정의
  • 그러나, 바이트 순서에 대해서 표준화 하지 못했음
  • 다시 말해 파일을 인식 시 이 파일이 UCS-2, UCS-4인지 인식하고 각 경우를 구분해서 모두 다르게 구현해야 하는 문제 발생

Big-endian, little-endian

메모리에는 주소와 데이터가 있다.

주소는 낮은주소부터 순서가 있다.

낮은자리를 빠른주소에 저장하는 방법 little-endian

낮은 자리를 높은 주소에 저장하는 방법 big-endian

유니코드 인코딩

  • UTF-8 (web)
  • UTF-16(in windows, java)
  • UTF-8(in unix)

다음 두 코드의 차이 이해하기

s1 = list(input())

s2 = input()

객체지향 언어에서의 문자열 처리

  • 문자열 데이터를 저장, 처리해주는 클래스를 제공한다.
  • string 클래스를 사용한다.
  • 문자열 처리에 필요한 연산을 연산자, 메소드 형태로 제공한다.

Python에서의 문자열 처리

  • char 타입 없음

  • 텍스트 데이터의 취급방법이 통일되어 있음

  • 문자열 기호

    • -'', "". "''", """"""
    • + 연결(Concatenation)
      • 문자열 +문자열 : 이어 붙여주는 역할
      • * 문자열 * 수 : 수만큼 문자열 반복
  • 문자열은 시퀀스 자료형으로 분류되고, 시퀀스 자료형에서 사용할 수 있는 인덱싱, 슬라이싱 연산들을 사용할 수 있음

  • 문자열 클래스에서 제공되는 메소드

replace(), split(), isalpha(),find()
  • 문자열은 튜플과 같이 요소값을 변경 할 수 없음

문자열 뒤집기

  • 자기 문자열에서 뒤집는 방버이 있고, 새로운 빈 문자열을 만들어 소스의 뒤에서부터 읽어서 타겟에 쓰느 방법
  • 자기 문자열을 이용할 경우는 swap을 위한 임시변수가 필요하며 반복 수행을 문자열 길이의 반만을 수행해야함

문자열 비교

  • 파이썬에는 == 연산자와 is 연산자를 제공한다
    • ==연산자는 내부적으로 특수 메서드 __eq__()를 호출
profile
내가 공부한 내용들이 누군가에게 도움이 될지 몰라서 쓰는 벨로그

0개의 댓글