>  기사  >  백엔드 개발  >  초보자에게 가장 적합한 Python 버전은 무엇입니까?

초보자에게 가장 적합한 Python 버전은 무엇입니까?

青灯夜游
青灯夜游원래의
2019-05-20 19:32:484618검색

Python을 배우려는 사람들은 혼란스러울 것입니다. 즉, Python에는 현재 Python2와 Python3의 두 가지 버전이 있습니다. Python2와 Python3의 차이점은 무엇입니까?

초보자에게 가장 적합한 Python 버전은 무엇입니까?

python3과 python2는 호환되지 않으며 차이점이 상대적으로 큽니다. python3은 이전 버전과 호환되지 않지만 대부분의 구성 요소와 확장은 python2를 기반으로 합니다. 현재 대부분의 실제 응용 프로그램에서는 당분간 Python 3를 고려하지 않으며 때로는 2/3과 호환되는 코드 작성에주의를 기울입니다. 주로 Python2를 사용하여 새로운 코드를 작성하는 경우 향후 Python3으로 마이그레이션할 가능성을 고려해야 합니다. 통계에 따르면 현재 10%는 Python 3을 사용하고 있으며 20%는 Python 2와 Python 3을 모두 사용하고 있으며 70%는 Python 2를 더 많이 사용하고 있습니다.

사실 Python은 Linux에서 가장 일반적으로 사용되는 소프트웨어 중 하나이지만 현재 Linux 버전의 대부분은 여전히 ​​Python2를 사용하고 있습니다. 또한 Linux에는 Python2를 사용하는 프로그램이 더 많기 때문에 이를 완료하는 데 몇 년이 걸릴 것입니다. Python2를 대체하고 주류가 되는 Python3. 아직도 취업을 위해 Python 2를 배운다면, Python 2를 배운 후 Python 2에서 Python3으로 전환하는 것은 어렵지 않습니다.

오랜 이야기 끝에 Python2와 Python3의 차이점은 무엇인가요?

1. 성능

Py3.0은 Py2.5보다 30% 느리게 pystone 벤치마크를 실행합니다. Guido는 Py3.0이 최적화를 위한 큰 여지를 갖고 있으며 문자열 및 정수 연산에서 좋은 최적화 결과를 얻을 수 있다고 믿습니다.

Py3.1 성능은 Py2.5보다 15% 느리고 여전히 개선의 여지가 많습니다.

2.Encoding

Py3.repr()

3) True, False, None과 함께 as 및 with 키워드를 추가하세요.

4) 정수 나누기는 부동 소수점 숫자를 반환합니다. //를 사용하세요.

5) 비로컬 문을 추가합니다. noclocal x를 사용하여 주변(비전역) 변수를 직접 할당합니다.

6) print 문을 제거하고 print() 함수를 추가하여 동일한 기능을 구현합니다. exec() 함수로 변경된 exec 문도 마찬가지입니다

7) x와 y 유형이 일치하지 않는 경우 x

8) 입력 함수가 변경되었고, raw_input이 삭제되고 입력으로 대체되었습니다.

9) 튜플 매개변수 압축 해제가 제거되었습니다. 이 함수는 def(a, (b, c)):pass

10)처럼 정의할 수 없습니다. 새로운 8진수 변수인 oct() 함수가 그에 따라 수정되었습니다.

11) 이진 리터럴 및 bin() 함수 추가

12) 반복 가능한 압축 풀기 확장. Py3에서.

13) 새로운 super(), 더 이상 super()에 매개변수를 전달할 수 없습니다.

14) 새로운 메타클래스 구문:

15) 클래스 데코레이터를 지원합니다.

4. 문자열과 바이트 문자열

1) 이제 문자열에는 str이라는 한 가지 유형만 있지만 2.x 버전의 유니코드와 거의 동일합니다.

2) 바이트 문자열에 대해서는 "데이터 유형"의 두 번째 항목을 참조하십시오.

5. 데이터 유형

1) Py3.X는 long 유형을 제거했으며 이제 정수 유형인 int만 있습니다. 버전 2에서는 long처럼 동작합니다.

2) 컨테이너 클래스와 반복자 클래스는 ABC 크기이므로 Py2.5보다 cellections 모듈에 더 많은 유형이 있습니다.

3) 반복자의 next() 메서드 이름이 __next__()로 바뀌었고, 반복자를 호출하기 위해 내장 함수 next()가 추가되었습니다.

4) 두 개의 데코레이터, @abstractmethod 및 @abstractproperty가 추가되어 쓰기에 사용되었습니다. 추상 메서드(속성)가 더 편리합니다.

7. 예외

1) 모든 예외는 BaseException에서 상속되고 StardardError는 삭제됩니다.

2) 예외 클래스의 시퀀스 동작 및 .message 속성이 제거됩니다.

3) raise 대신 raise Exception(args)을 사용합니다. 예외, args 구문

4) 예외 포착을 위한 구문 변경, 예외 인스턴스를 식별하기 위해 as 키워드가 도입됨

5) __context__가 버전 3.0a1에서 구현되지 않았기 때문에

8 변경 사항

1) cPickle이 제거되었습니다. 모듈에서는 대신 pickle 모듈을 사용할 수 있습니다. 결국 우리는 투명하고 효율적인 모듈을 갖게 될 것입니다.

2) imageop 모듈 제거

3) audiodev, Bastion, bsddb185, 예외, linuxaudiodev, md5, imeWriter, mimify, popen2, rexec, set, sha, stringold, strop, sunaudiodev, timing 및 xmllib 모듈 제거

4) bsddb 모듈 제거(별도 릴리스, Oracle Berkeley DB용 Python "바인딩"에서 사용 가능)

5) 새 모듈 제거

6) os.tmpnam() 및 os.tmpfile() 함수 tmpfile 모듈로 이동


7) 이제 토큰화 모듈이 바이트와 함께 작동합니다. 기본 진입점은 더 이상 generate_tokens가 아니지만 tokenize.tokenize()

9, 기타

1) xrange()의 이름이 range()로 바뀌었습니다. range()를 사용하여 목록을 얻으려면 명시적으로 호출해야 합니다.

2 ) 바이트 객체는 해시할 수 없으며 b.lower(), b.strip() 및 b.split() 메서드도 지원하지 않습니다.

3) zip(), map() 및 filter() 모두 반환 반복자 .

4) string.letters 및 관련 .lowercase 및 .uppercase가 제거되었습니다. 대신 string.ascii_letters를 사용하십시오.

5) x < y를 비교할 수 없으면 TypeError 예외가 발생합니다.

6) __getslice__ 시리즈 멤버는 중단됩니다.

7) 파일 클래스가 포기되었습니다

위 내용은 초보자에게 가장 적합한 Python 버전은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.