이 글은 파이썬 코딩을 자세하게 정리한 것입니다. 참고를 위해 다음과 같이 모든 사람과 공유하십시오.
[소위 유니코드]
유니코드는 기호 세트와 유사한 추상 인코딩입니다. 규정만 있습니다. 기호의 이진 코드가 포함되어 있지만 이 이진 코드를 저장하는 방법은 지정하지 않습니다. 즉, 내부 표현일 뿐이며 직접 저장할 수 없습니다. 따라서 저장할 때 utf-8, utf-16 등의 저장 형식을 지정해야 합니다. 이론적으로 유니코드는 전 세계 모든 언어를 수용할 수 있는 인코딩 체계입니다. (다른 인코딩 형식에 대해서는 자세한 내용 없음)
[소위 GB 코드]
GB는 "국가 표준", 즉 인민의 국가 표준을 의미합니다. 중화민국. GB 코드는 GB2312(GB2312-80), GBK, GB18030을 포함한 한자에 대한 코딩입니다. 표현 범위는 작은 것부터 큰 것까지 증가하며 기본적으로 이전 버전과 호환됩니다. 게다가 우리는 CP936이라는 코드를 자주 접하는데, 실제로는 대략 GBK라고 볼 수 있다.
[인코딩 판단]
1. isinstance(s, str)을 사용하여 문자열이 일반 문자열인지 확인합니다(str은 ASCII 형식 문자열, utf- 8, utf-16, GB2312, GBK 등은 모두 ASCII 형식 문자열입니다.
isinstance(s, unicode)를 사용하여 문자열이 유니코드 인코딩 문자열인지 확인합니다(유니코드 인코딩 문자열은 유니코드입니다). 문자열)을 입력합니다.
2. type() 또는 .__class__ 사용
인코딩이 올바른 경우:
예: stra = "中", type(stra)의 결과를 사용합니다. )
을 나타냅니다. 예를 들어 strb = u"中"이면 type(strb)를 사용한 결과는
tmp_str = 'tmp_str' print tmp_str.__class__ #<type 'str'> print type(tmp_str) #<type 'str'> print type(tmp_str).__name__ #str tmp_str = u'tmp_str' print tmp_str.__class__ #<type 'unicode'> print type(tmp_str) #<type 'unicode'> print type(tmp_str).__name__ #unicode
3. 가장 좋은 방법은 특히 HTML 페이지 가져오기와 같은 웹 관련 작업에서 chardet 판단을 사용하는 것입니다. 콘텐츠에 들어오면 페이지의 charset 태그는 인코딩만 표시하는데, 이는 때때로 부정확할 수 있으며, 페이지 콘텐츠의 일부 중국어 문자가 인코딩 범위를 초과할 수 있습니다. 이 경우, charset 감지를 사용하는 것이 가장 편리하고 정확합니다. .
(1) 설치 방법: chardet을 다운로드한 후 Python 설치 디렉터리의 Libsite-packages 디렉터리에 압축을 푼 chardet 폴더를 넣고 프로그램에서 import chardet을 사용합니다.
(2) 방법 1: 모든 콘텐츠를 감지하여 인코딩 결정
import urllib2 import chardet res = urllib2.urlopen('http://www.php.cn') res_cont = res.read() res.close() print chardet.detect(res_cont) #{'confidence': 0.99, 'encoding': 'utf-8'}
감지 함수는 값을 반환합니다. 2개의 키-값 쌍으로 구성된 사전을 포함하며 첫 번째는 감지 신뢰도이고 두 번째는 감지된 인코딩 형식입니다.
(3) 방법 2: 내용의 일부를 감지해 인코딩을 판단하고 속도를 높인다
import urllib2 from chardet.universaldetector import UniversalDetector res = urllib2.urlopen('http://www.php.cn') detector = UniversalDetector() for line in res.readlines(): #detect untill reach threshold detector.feed(line) if detector.done: break detector.close() res.close() print detector.result #{'confidence': 0.99, 'encoding': 'utf-8'}
【 인코딩 변환】
1. 특정 인코딩(ISO-8859-1 [ASCII 코드], utf-8, utf-16, GBK, GB2312 등)을 유니코드로 변환합니다. , unicode( s, charset) 또는 s.decode(charset)를 직접 사용합니다. 여기서 charset은 s의 인코딩입니다(유니코드는 decode()를 사용할 때 오류가 발생합니다). >
#将任意字符串转换为unicode def to_unicode(s, encoding): if isinstance(s, unicode): return s else: return unicode(s, encoding)
해결책: '무시' 모드를 사용하세요. 즉, stra.decode('...', 'ignore').encode('utf-8')입니다.
설명: decode의 함수 프로토타입은 decode([encoding],[errors='strict'])이며 두 번째 매개변수를 사용하여 오류 처리 전략을 제어할 수 있습니다.
기본 매개변수는 엄격합니다. 즉, 잘못된 문자가 발견되면 예외가 발생합니다. 대체하도록 설정된 경우 잘못된 문자는 ?로 대체됩니다. xmlcharrefreplace 로 설정한 다음 XML 문자 참조를 사용하십시오.
2. 유니코드에서 특정 인코딩으로 변환하려면 s.encode(charset)도 직접 사용됩니다. 여기서 s는 유니코드 인코딩이고 charset은 특정 인코딩입니다(유니코드가 아닌 경우 오류가 발생합니다). encode())를 사용할 때 ;
3. 당연히 하나의 특정 인코딩에서 다른 특정 인코딩으로 변환할 때 먼저 유니코드로 디코딩한 다음 최종 인코딩으로 인코딩할 수 있습니다.
[python 명령줄 인코딩(시스템 인코딩)]파이썬과 함께 제공되는 로케일 모듈을 사용하여 명령줄의 기본 인코딩(즉, 시스템 인코딩) 및 명령줄 인코딩 설정:
import locale #get coding type print locale.getdefaultlocale() #('zh_CN', 'cp936') #set coding type locale.setlocale(locale.LC_ALL, locale='zh_CN.GB2312') print locale.getlocale() #('zh_CN', 'gb2312')
1. 파이썬 코드의 문자열이 인코딩으로 지정되지 않은 경우 기본 인코딩은 코드의 인코딩과 동일합니다. 파일 자체는 일관성이 있습니다. 예를 들어 문자열 str = 'English'가 utf8로 인코딩된 코드 파일에 있으면 문자열은 utf8로 인코딩됩니다. gb2312 파일에 있으면 문자열은 gb2312로 인코딩됩니다. 그렇다면 코드 파일 자체의 인코딩을 어떻게 알 수 있습니까? (1) 코드 파일의 인코딩을 직접 지정: 코드 파일 헤드에 "#-*-coding:utf-8 -*-"를 추가하여 코드 파일이 utf-8임을 선언합니다. 인코딩되었습니다. 이때, 인코딩이 지정되지 않은 문자열의 인코딩은 utf-8이 됩니다.
(2)在没有指定代码文件的编码时,创建代码文件时使用的是python默认采用的编码(一般来说是ascii码,在windows中实际保存为cp936(GBK)编码)。通过sys.getdefaultencoding()和sys.setdefaultencoding('...')来获取和设置该默认编码。
import sys reload(sys) print sys.getdefaultencoding() #ascii sys.setdefaultencoding('utf-8') print sys.getdefaultencoding() #utf-8
结合(1)和(2)做个试验:指定代码文件编码为utf-8时,用notepad++打开显示的是utf-8无DOM编码;未指定代码文件编码时,用notepad++打开显示的是ANSI编码(压缩编码,默认的保存编码形式)。
(3)如何永久地将python默认采用的编码设置为utf-8呢?有2种方法:
第一个方法:编辑site.py,修改setencoding()函数,强制设置为 utf-8;
第二个方法:增加一个名为 sitecustomize.py的文件,存放在安装目录下的\Lib\site-packages目录下
sitecustomize.py是在site.py被import执行的,因为 sys.setdefaultencoding()是在site.py的结尾处被删除的,所以可以在 sitecustomize.py使用 sys.setdefaultencoding()。
2、python代码中的字符串如果被指定了编码,举个例子:str = u'中文',该字符串的编码被指定为unicode(即python的内部编码)。
(1)这里有个误区需要注意!假如在py文件中有如下代码:
stra = u"中" print stra.encode("gbk")
按上面说的stra是unicode形式,直接encode称gbk编码应该没问题啊?但是实际执行时会报错“UnicodeEncodeError: 'gbk' codec can't encode character u'\xd6' in position 0: illegal multibyte sequence”。
原因在于:python解释器在导入python代码文件并执行时,会先查看文件头有没有编码声明(例如#coding:gbk等)。如果发现声明,会将文件中的字符串都先解释成unicode的形式(这里先用默认编码gbk(cp936)将stra解码成unicode编码'd6d0'后保存),之后执行stra.encode('gbk')时,由于stra已经是unicode编码且'd6d0'在gbk的编码范围内,所以编码不会出现错误;如果文件头没有编码声明,则不会进行上述过程中的解码操作(这里就直接使用stra的unicode编码'd6'),之后执行stra.encode('gbk')时,由于'd6'不在gbk的编码范围所以报错。
(2)为避免这种类型的错误,最好在代码文件头上声明编码,或者麻烦点每次使用setdefaultencoding()。
(3)总的来说就是unicode是python解释器的内码,所有代码文件在导入并执行时,python解释器会先将字符串使用你指定的编码形式解码成unicode,然后再进行各种操作。所以不管是对字符串的操作,还是正则表达式,还是读写文件等等最好都通过unicode来进行。
【python中其他编码】
文件系统的编码:sys.getfilesystemencoding()
终端的输入编码:sys.stdin.encoding
终端的输出编码:sys.stdout.encoding
更多Python 코딩 요약(인코딩 유형, 형식, 트랜스코딩)相关文章请关注PHP中文网!

하루에 2 시간 동안 파이썬을 배우는 것으로 충분합니까? 목표와 학습 방법에 따라 다릅니다. 1) 명확한 학습 계획을 개발, 2) 적절한 학습 자원 및 방법을 선택하고 3) 실습 연습 및 검토 및 통합 연습 및 검토 및 통합,이 기간 동안 Python의 기본 지식과 고급 기능을 점차적으로 마스터 할 수 있습니다.

웹 개발에서 Python의 주요 응용 프로그램에는 Django 및 Flask 프레임 워크 사용, API 개발, 데이터 분석 및 시각화, 머신 러닝 및 AI 및 성능 최적화가 포함됩니다. 1. Django 및 Flask 프레임 워크 : Django는 복잡한 응용 분야의 빠른 개발에 적합하며 플라스크는 소형 또는 고도로 맞춤형 프로젝트에 적합합니다. 2. API 개발 : Flask 또는 DjangorestFramework를 사용하여 RESTFULAPI를 구축하십시오. 3. 데이터 분석 및 시각화 : Python을 사용하여 데이터를 처리하고 웹 인터페이스를 통해 표시합니다. 4. 머신 러닝 및 AI : 파이썬은 지능형 웹 애플리케이션을 구축하는 데 사용됩니다. 5. 성능 최적화 : 비동기 프로그래밍, 캐싱 및 코드를 통해 최적화

Python은 개발 효율에서 C보다 낫지 만 C는 실행 성능이 높습니다. 1. Python의 간결한 구문 및 풍부한 라이브러리는 개발 효율성을 향상시킵니다. 2.C의 컴파일 유형 특성 및 하드웨어 제어는 실행 성능을 향상시킵니다. 선택할 때는 프로젝트 요구에 따라 개발 속도 및 실행 효율성을 평가해야합니다.

Python의 실제 응용 프로그램에는 데이터 분석, 웹 개발, 인공 지능 및 자동화가 포함됩니다. 1) 데이터 분석에서 Python은 Pandas 및 Matplotlib를 사용하여 데이터를 처리하고 시각화합니다. 2) 웹 개발에서 Django 및 Flask 프레임 워크는 웹 응용 프로그램 생성을 단순화합니다. 3) 인공 지능 분야에서 Tensorflow와 Pytorch는 모델을 구축하고 훈련시키는 데 사용됩니다. 4) 자동화 측면에서 파이썬 스크립트는 파일 복사와 같은 작업에 사용할 수 있습니다.

Python은 데이터 과학, 웹 개발 및 자동화 스크립팅 필드에 널리 사용됩니다. 1) 데이터 과학에서 Python은 Numpy 및 Pandas와 같은 라이브러리를 통해 데이터 처리 및 분석을 단순화합니다. 2) 웹 개발에서 Django 및 Flask 프레임 워크를 통해 개발자는 응용 프로그램을 신속하게 구축 할 수 있습니다. 3) 자동 스크립트에서 Python의 단순성과 표준 라이브러리가 이상적입니다.

Python의 유연성은 다중 파리가 지원 및 동적 유형 시스템에 반영되며, 사용 편의성은 간단한 구문 및 풍부한 표준 라이브러리에서 나옵니다. 유연성 : 객체 지향, 기능 및 절차 프로그래밍을 지원하며 동적 유형 시스템은 개발 효율성을 향상시킵니다. 2. 사용 편의성 : 문법은 자연 언어에 가깝고 표준 라이브러리는 광범위한 기능을 다루며 개발 프로세스를 단순화합니다.

Python은 초보자부터 고급 개발자에 이르기까지 모든 요구에 적합한 단순성과 힘에 호의적입니다. 다목적 성은 다음과 같이 반영됩니다. 1) 배우고 사용하기 쉽고 간단한 구문; 2) Numpy, Pandas 등과 같은 풍부한 라이브러리 및 프레임 워크; 3) 다양한 운영 체제에서 실행할 수있는 크로스 플랫폼 지원; 4) 작업 효율성을 향상시키기위한 스크립팅 및 자동화 작업에 적합합니다.

예, 하루에 2 시간 후에 파이썬을 배우십시오. 1. 합리적인 학습 계획 개발, 2. 올바른 학습 자원을 선택하십시오. 3. 실습을 통해 학습 된 지식을 통합하십시오. 이 단계는 짧은 시간 안에 Python을 마스터하는 데 도움이 될 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

Dreamweaver Mac版
시각적 웹 개발 도구
