1 python2 자주 사용 마무리 python3 차이점
Python2 번호의
인쇄 'ABC'
#이 목록의 반환
범위 ()
#이 값 생성기 반환 하지 목록. 당신은 단지 하나 개의 값을 만들 때마다, 임시로 사용에게 메모리를 많이 피
xrange () # 빌더
# 입력
raw_input을 (...)
#의 python3의
인쇄 ( 'ABC')가
#이 반환 반복자 값을 , 당신은 목록을 (사용해야 목록을 생성 할 필요가 레인지 (...))
레인지 ()
의 INPUT (...)
2 복사 == 비교 값 비교 어떤지, 메모리 어드레스 비교 ID (콘텐츠)이고
식 Li1에서 >>> = [1,2,3 ] >>> LI2 = 인 Li1에 >>> (식 Li1의 ID (), ID (LI2)) 프링 >>> 인쇄 (식 Li1의 ID (), ID (LI2)) 2,472,533,256,584 2,472,533,256,584 #의 존재 진수 문자열 풀, 동일한 메모리 어드레스를 사용하고, 소수 범위 풀 #의 번호 256 ~ -5 >>> = I1. 6 >>> = I2. 6 >>> 인쇄 (ID (I1), ID를 (I2)) 140,717,920,019,440 140,717,920,019,440 >>> I1 = 300 >>> 300 I2 = >>> 인쇄 (ID (I1), ID (I2)) 2472536947344 2472536947248 >>> I1 = 256 >>> 256 I2 = >>> 인쇄 (위에서 언급 한 ID (I1) ID (I2)) 140717920027440 140717920027440 >>> >>> I2 = 257 >>> I1 = 257인쇄 (ID (I1), ID (I2)) 2472536947344 2472536947248 >>> I1 = -5 >>> I2 = -5 >>> 인쇄 (ID (I1), ID (I2)) 140717920019088 140717920019088 >>> I2 = -6 >>> I1 = -6 >>> 인쇄 (ID (I1), ID (I2)) 2472536947344 2472536947248
#의 문자열 : 1, 특수 문자를 사용할 수 없습니다 # , * 20 같은 주소 (S2)를, 21는 두 개의 주소 (후 * s의 1 이상이 리드의 서로 다른 버전의 변화로 추정된다 *, 시험 중에, 확인하십시오. ) >>> S1 = ' 121212asdasdasdadasdasdasdadadqrjladksfjaiodfu ' >>> S2 = ' 121212asdasdasdadasdasdasdadadqrjladksfjaiodfu ' >>> 인쇄 (ID (S1), ID (S2)) 2472537146064 2472537146064 >>> S1 = ' 121212asdasdasdadasdasdasdadadqrjladksfjaiodfu를 @ ' >>> S2 = ' 121212asdasdasdadasdasdasdadadqrjladksfjaiodfu @ ' >>> 인쇄 (ID (S1), ID (S2)) 2,472,537,146,160 2,472,537,146,064 # 목록 딕셔너리, 튜플 세트 #의 리스트 >>> L1 = 1 ,] >>> L2 = [1 ,] >>> 인쇄 (L1은 인 L2) 거짓 >>> >>> L2 = L1 >>> 프린트 (L1은 입니다 L2) 트루
3 문자 집합 인코딩
ASCII의
A : 바이트의 8 비트 00000010
유니 A : 00000000 00000001 00000010 00000100 32 네 비트 바이트
0,000,000,000,000,001 0,000,001,000,000,110 32 네 바이트 :에서
UTF-8 A : 00100000 바이트의 8 비트
이다 : 00000001 0,000,001,000,000,110 24 세 바이트
을 GBK : 00000110 바이트의 8 비트
중 : 0,000,001,000,000,110 개의 16- 비트 바이트
다양한 치화간에 서로를 인식 할 수있다 (1),이를 왜곡 될 것이다.
(2), 파일 저장, 전송, 유니 코드 (단 UTF-8, UTF-16 GBK 아니다 GB2312, asciid 등)
Py3 :
STR 메모리에 유니 코드이다.
바이트를 입력
영어 :
STR : 표현 : S = '맥주'
인코딩 : 유니 코드
바이트 : 식 : S = b'beer '
인코딩 : UTF-8 GBK를. . . .
중국어의 경우 :
STR : 식 : S = '슝'
인코딩은 유니 코드는
바이트 : 식 : S = B를 '\ xe9 \ x9b \ X84 \ xe5 \ XA4 \ xa7'
인코딩 : UTF-8을 GBK. . . .
>>>의 S = ' 맥주 ' >>> S1 = B ' 맥주 ' >>> 프린트 (S, 입력 (들)) 맥주 < 클래스 ' STR ' > >>> 인쇄 (S1 입력 (S1)) , B ' 맥주 ' < 클래스 ' 바이트 ' > >>> >>> >>>의 S = ' 雄의大' >>> 프린트 (S, 입력 (들) ) 雄大 < 클래스 'str ' > >>> s1 = b ' 웅대' 구문 에러는 : 바이트는 ASCII 문자 문자를 포함 할 수 있습니다. >>> >>> >>> S1 = s.encode ( " UTF-8 " ) >>> 인쇄 (S1) B ' \는 xe9 \ x9b \ X84 \ xe5 \ XA4 \ xa7 ' >>> S1가 S. 인코딩 ( ' GBK ' ) >>> 인쇄 (S1) B ' \ XD0 \ XDB \ XB4 xf3 \ '