python 프로 그래 밍 제6 과 제4 장 유 니 코드 와 문자열

5741 단어 Python 학습
제4 장 유 니 코드 와 문자열
* 정규 표현 식 과 문자열 의 일반적인 동작 은 중요 하지 않 습 니 다. 선생님 께 서 말씀 하 시 는 것 도 매우 적절 합 니 다.
처음에 컴퓨터 의 역 사 를 말 했 는데 이 부분 은 비트 (비트) 를 간단하게 기록 하 는 것 이 컴퓨터 와 디지털 통신 에서 정보의 기본 단위 이다.역사상 바이트 (1 byte = 8 bit) 는 컴퓨터 에서 텍스트 의 단일 문 자 를 인 코딩 (encode) 하 는 데 사용 되 는 자릿수 (the number of bits) 이기 때문에 많은 컴퓨터 시스템 구조 에서 byte 는 가장 작은 저장 장치 이다.
최초의 ASCII 코드 는 0127 의 인 코딩 에 만 사 용 됐 기 때문에 128255 의 인 코딩 을 이용 하 는 EASCII 코드 가 나 왔 지만 여전히 더 큰 수요 가 있어 유 니 코드 가 나 왔 다.유 니 코드 는 전파 문자열 을 표시 하여 서로 다른 기기 의 코드 문 제 를 방지 하기 위해 서 입 니 다.현재 유 니 코드 범 위 는 0 ~ 114111 (0x10ffff) 입 니 다.
1. 유 니 코드 의 기본 개념
문자 (character) 는 텍스트 의 가장 작은 구성 부분 으로 예 를 들 어 'A', 'B', 'C' 등 은 모두 다른 문자 이다.유 니 코드 표준 설명 은 코드 포인트 로 문 자 를 표시 하 는 방법 입 니 다.하나의 code points (실제 적 으로 하나의 정수 치 입 니 다. 보통 U + 4 비트 16 진법 으로 쓰 입 니 다. 예 를 들 어 U + 12CA 는 0 x12ca 의 문 자 를 표시 합 니 다) 는 character 에 대응 합 니 다.유 니 코드 표준 에는 character 와 그 에 대응 하 는 code point 가 많이 포함 되 어 있 습 니 다.
문자 (character) 는 화면 이나 종이 에 자형 (glyph) 이라는 도형 요소 로 표 시 됩 니 다.glyph 는 어떻게 표시 하고 인쇄 하 는 지 를 고려 하 는 데 사용 되 지만, 우 리 는 일반적으로 이 물건 을 고려 할 필요 가 없다. 이것 은 컴퓨터 와 프린터 가 고려 해 야 할 일이 다.표시 할 올 바른 글꼴 을 확인 하 는 것 은 보통 GUI toolkit (GUI 도구 상자) 나 terminal 's font render (터미널 글꼴 표시 기) 작업 입 니 다.유 니 코드 표준 자 체 는 문자 가 어떻게 표시 되 는 지 에 관심 이 없습니다. 개념 적 인 chratter 와 code points 의 대응 관 계 를 규정 할 뿐 실제 적 으로 개념 적 인 chratter 를 인 코딩 합 니 다.
2. 인 코딩 (인 코딩)
유 니 코드 문자열 은 0 에서 0 x 10 ffff 사이 의 숫자 입 니 다.이 시퀀스 는 메모리 에 바이트 (즉 0 - 255 사이 의 값) 로 표시 해 야 합 니 다.encoding 은 개념 적 인 Unicoding string (a sequence of code points) 인 코딩 을 sequence of bytes 로 바 꾸 는 과정 이다.인 코딩 은 필수 적 인 과정 입 니 다. 정보, 문자열 을 전파 하고 저장 하려 면 바이트 시퀀스 를 사용 해 야 하기 때 문 입 니 다.
3. 이 광 하 가 디자인 한 간단 한 인 코딩 방식 과 그 단점 에 대한 해결 방안
4 개의 바이트 32 비트 로 code points 를 표시 합 니 다.이러한 인 코딩 방식 의 단점 은 실행 성 이 떨 어 지 는 것 입 니 다.
솔 루 션 의 사상: 1. 가 변 길 이 는 고정 길이 의 32 - bit integer (4 bytes) 를 사용 하지 마 십시오.상용 문자 작은 번호, 상용 문자 큰 번호 가 아 닙 니 다.2. 기 존 인 코딩 표준 호 환 (예: ASCII)
UTF - 8
* 유 니 코드 는 인 코딩 방식 (encoding) 이 아 닌 표준 적 이 고 개념 적 인 번호 입 니 다.UTF - 8 은 여러 인 코딩 방식 중 하나 이 므 로 이들 의 차이 에 주의 하 세 요.
UTF - 8 의 조 치 는 해결 사상 (UTF - 8 의 특징 에 맞 게 반드시 시험 해 야 한다. 선생님 이 직접 지시) 1. code point < 128 1 바이트, 대응 하 는 바이트 값 표시 (ascii 호 환) 2. codepoint 128 ~ 0x7ff (2047) 2 바이트, 2 바이트 값 128 ~ 255 3. > 0x7ff 34 바이트 (128255), 각 바이트 값 128 ~ 255
* UTF - 8 인 코딩 의 장점2. 유 니 코드 문자열 은 삽입 식 0 바이트 가 포함 되 지 않 은 바이트 문자열 로 변 환 됩 니 다.바이트 정렬 문 제 를 피 할 수 있 으 며, UTF - 8 문자열 은 strcpy () 와 같은 C 함수 로 처리 할 수 있 으 며, 0 바이트 프로 토 콜 을 처리 할 수 없 음 을 의미 합 니 다.3. ASCII 텍스트 문자열 도 유효한 UTF - 8 텍스트 로 호 환 이 가능 합 니 다.4. UTF - 8 이 상당히 치밀 하 다.대부분의 코드 점 은 두 바이트 로 바 뀌 었 고 128 보다 작은 값 은 한 바이트 만 차지한다.
5. python 문자열 의 일반적인 동작
(여기 서 간단하게 얘 기 하 는데 30 분 도 안 돼 서 PPT 를 본다 고 했 어 요)
string 은 가 변 적 이지 않 은 시퀀스 에 속 합 니 다. (즉, 절편 과 아래 색인 을 통 해 변경 할 수 없습니다)
1. 문자열 상주 메커니즘:
짧 은 문자열 이 여러 대상 에 게 값 을 부여 할 때 메모리 에 복사 본 이 하나 밖 에 없고 여러 대상 이 이 복사 본 을 공유 합 니 다.
2. 전의 문자:
* \ t (줄 방향 유도 문자) 도 문자 입 니 다. 표시 되 지 않 을 뿐 * > > ord (') 는 전의 문자 의 10 진 ascii 번 호 를 되 돌려 줍 니 다.
 :
>>>s='a
b\tc' >>>s 'a
b\tc' >>>print(s) a b c >>>len(s) 5 >>>ord('
') 10 >>>ord('\t') 9

* \ 는 실제 출력 을 나타 내 는 데 사 용 됩 니 다. 추가 되 지 않 은 print 의 차 이 를 구체 적 으로 보면 PPT 예 를 볼 수 있 습 니 다. 문자열 앞 에 r 또는 R 을 추가 하여 전의 체 제 를 닫 을 수도 있 습 니 다. (정규 표현 식 에서 흔히 볼 수 있 습 니 다)
3. 문자열 포맷
(돌아 가면 format 를 잘 볼 수 있 습 니 다. 선생님 께 서 직접 보 여 주 셨 습 니 다) * > > "% b"% 1235 는 잘못된 쓰기 입 니 다.% 를 직접 사용 할 수 없습니다. format 을 사용 해 야 바 이 너 리 로 표시 할 수 있 습 니 다. 즉 > > "{0: b}". format (1235) 을 사용 하여 '100110011' 을 얻 을 수 있 습 니 다.
4. 문자열 상용 방법
(많은 사람들 이 우리 에 게 돌아 가서 스스로 보라 고 하 는데, 여 기 는 그 가 약간 강조 한 몇 가지 만 기억 하고 있다)
. find () 와. rfind (). index () 와. rindex (). count ()
* 가 r 는 오른쪽 에서 부터 찾기 시작 하고 find () 는 있 는 지 없 는 지 만 찾 고 index () 는 위치 로 돌아 갑 니 다.
. split () 와. rsplit () 는 일정한 분할 문자 에 따라 문자열 을 자 르 고 목록 을 되 돌려 줍 니 다.
* 인 자 를 추가 하지 않 으 면 기본적으로 빈 칸 과 줄 바 꾸 기 등 으로 문자열 을 자 릅 니 다.최대 분할 횟수 지정 가능
. join () 연결 문자열
연결 문자열 은 목록 에 문자열 을 같이 넣 어야 합 니 다. + 를 사용 하지 마 십시오.
. strip () 공백 삭제
외부 터미널 에서 input () 를 이용 하여 문자열 을 읽 을 때 보통 아래. strip () 을 사용 하여 문자열 좌우 양쪽 에 있 을 수 있 는 빈 칸 을 삭제 한 다음 정수 로 변환 하 는 작업 을 합 니 다.
eval()
구성원 판단
.startswith(),.endwith()
주어진 예 에서 이 함 수 를 결합 하여 현재 디 렉 터 리 에서 그림 을 선택 하여 문자열 이 주어진 문자열 로 시작 되 거나 끝 날 지 여 부 를 판단 합 니 다.
5. 문자열 상수
6. 가 변 문자열
(보통 잘 안 써 요. 이렇게 쓸 수 있다 는 걸 알 면 돼 요. 쓰 고 와 서 봐 야 돼 요. 시험 을 이렇게 꼼꼼 하 게 보지 못 해 요.)
유 니 코드 데이터 대상 을 제자리 에서 수정 하지 않 으 려 면 io. stringIO 대상 이나 array 모듈 을 사용 해 야 합 니 다.
* python 에는 유 니 코드 라 는 데이터 형식 이 있 습 니 다. 데이터 형식 일 때 u 는 소문 자로 유 니 코드 string 용 > > s = u "Hello, World" 를 정의 해 야 합 니 다.이니셜
  :  io.StringIO  

>>> import io
>>> s = u"Hello, world"
>>> sio = io.StringIO(s)                 io      
>>> sio.getvalue()
u'Hello, world' 
>>> sio.seek(7)                          seek    
7L
>>> sio.write(u"there!")                  world   there
6L
>>> sio.getvalue()
u'Hello, there!'
  :  array.array() unicode string    array  ,            ,  .tounicode()    

>>> import array
>>> a = array.array('u', u'Hello, world')
>>> print a
array('u', u'Hello, world')
>>> a[0] = u'y'
>>> print a
array('u', u'yello, world')
>>> a.tounicode()
u'yello, world'

* import this 는 직접 읽 어 보 세 요. 선생님 이 말씀 안 하 셨 어 요.
편집 은 2020 - 3 - 26 14: 49 에서 2020 - 4 - 26 21: 42 로 수정 되 었 습 니 다.

좋은 웹페이지 즐겨찾기