Python 2와 Python 3 버전 및 인코딩 비교

高洛峰
풀어 주다: 2017-02-17 11:52:57
원래의
1098명이 탐색했습니다.

1. 버전 비교

먼저 말씀드릴 점은 현재 Python 버전은 크게 두 가지 범주로 나누어진다는 것입니다.

Python 2.x 버전은 Python2라고 합니다. Python 2.7.3과 같이 가장 널리 사용됩니다.

Python 3.x 버전은 Python3이라고 합니다. Python 3.1과 같은 최신 버전입니다. 장기적으로 미래 트렌드라고 볼 수 있다.

[Python2와 Python3의 차이점]

1. Python2에서 Python3으로 많은 기본 함수 인터페이스가 변경되었으며 일부 라이브러리나 함수도 제거되고 이름이 변경되었습니다.

Python2 및 Python3에서는 기본적이고 가장 일반적으로 사용되는 많은 기능에서 인터페이스가 변경되었습니다. 가장 일반적인 것은 가장 일반적으로 사용되는 인쇄 기능입니다.

2. 타사 라이브러리 지원 측면에서는 현재 Python2가 가장 잘 지원되는 반면 Python3은 충분히 지원되지 않습니다.

Python이 강력한 이유 중 하나는 다음과 같습니다. 많은 타사 라이브러리에서 이 기능은 매우 강력합니다.

현재 많은 타사 Python용 라이브러리는 Python2만 제공합니다.

또는 Python3이 제공되더라도 그다지 성숙하지 않을 수 있습니다.

2. 인코딩 비교

Python에서는 Python2이든 Python3이든 일반적으로 두 가지 범주의 문자만 있습니다.

  1. Universal 유니코드 문자, UTF-8, GBK 및 기타 유형의 문자와 같은 특정 인코딩 유형의

  2. (유니코드 인코딩) 문자.

Python2의 문자 유형:

  • str: 인코딩된 바이트 시퀀스

  • unicode: 인코딩 전의 텍스트 문자

Python3의 문자 유형:

  • str: 인코딩된 유니코드 텍스트 문자

  • 바이트: 인코딩 전 바이트 시퀀스

문자열은 텍스트 상태와 바이트(바이너리) 상태라는 두 가지 상태를 갖는다고 생각할 수 있습니다. Python2와 Python3의 두 가지 문자 유형은 각각 이 두 가지 상태에 해당하며, 서로 인코딩 및 디코딩됩니다. 인코딩은 문자열을 바이트코드로 변환하는 것이며, 여기에는 문자열의 내부 표현이 포함됩니다. 디코딩은 바이트코드를 문자열로 변환하고 비트를 문자로 표시하는 것입니다.

Python2에서는 str과 unicode 모두 encode와 decode 메소드를 가지고 있습니다. 그러나 str에는 encode를 사용하고 unicode에는 decode를 사용하지 않는 것이 좋습니다. 이는 Python2 설계의 결함입니다. Python3은 최적화되었습니다. str에는 문자열을 바이트 코드로 변환하는 단 하나의 인코딩 메서드가 있고 bytes에는 바이트 코드를 텍스트 문자열로 변환하는 단 하나의 디코드 메서드가 있습니다.

Python2의 str과 unicode는 모두 기본 문자열의 하위 클래스이므로 둘을 직접 연결할 수 있습니다. Python3에서 bytes와 str은 두 개의 독립적인 유형이며 결합될 수 없습니다.

Python2에서 따옴표로 묶인 일반 문자는 str이며, 문자열의 인코딩 유형은 가장 일반적인 Windows 플랫폼에서 기본값입니다. GBK입니다. Python3에서 작은따옴표나 큰따옴표로 묶인 문자열은 이미 유니코드 유형 str입니다.

str 인코딩에는 몇 가지 전제 조건이 있습니다.

  1. 해당 인코딩이 Python 파일의 시작 부분에 선언되었습니다.

  2. Python 파일 실제로 이 인코딩을 사용하여 저장되었습니다.

  3. 둘의 인코딩 유형이 동일해야 합니다(예: 둘 다 UTF-8이거나 둘 다 GBK 등). )

이러한 방식으로 Python 파서는 텍스트를 해당 인코딩된 문자열로 올바르게 구문 분석할 수 있습니다.

일반적으로 Python3에서는 문자 인코딩 문제가 크게 최적화되어 더 이상 Python2만큼 문제가 되지 않습니다. Python3에서 텍스트는 항상 str 유형으로 표시되는 유니코드이고, 바이너리 데이터는 str과 바이트가 비밀리에 혼합되지 않으므로 둘 사이의 차이가 더욱 분명해집니다.

요약

위 내용은 이 글의 전체 내용입니다. 궁금한 점이 있거나 Python을 사용하는 모든 분들께 도움이 되기를 바랍니다. 메시지를 남겨서 소통할 수 있습니다. PHP 중국어 웹사이트를 지원해 주셔서 감사합니다.


Python 2와 Python 3 버전 비교 및 ​​코딩에 대한 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!