Python 소개
개발 연혁
Python 2 또는 3?
1. Python 소개
Python의 창시자는 Guido van Rossum입니다. 1989년 크리스마스 기간 동안 암스테르담에서 시간을 보내기 위해 Guido van Rossum은 ABC 언어의 후속 제품으로 새로운 스크립트 인터프리터를 개발하기로 결정했습니다.
최신 TIOBE 순위에서 Python은 PHP를 제치고 5위를 차지했습니다. Python은 우아함, 명확성, 단순성을 옹호하며 우수하고 널리 사용되는 언어입니다.
Python은 데이터 분석, 구성 요소 통합, 네트워크 서비스, 이미지 처리, 수치 컴퓨팅, 과학 컴퓨팅 및 기타 여러 분야와 같은 다양한 분야에서 사용될 수 있습니다. 현재 Youtube, Dropbox, BT, Quora(China Zhihu), Douban, Zhihu, Google, Yahoo!, Facebook, NASA, Baidu, Tencent 등 업계의 거의 모든 대형 및 중형 인터넷 회사에서 Python을 사용하고 있습니다. , 오토홈, Meituan et al. 인터넷 기업이 Python을 널리 사용하는 작업에는 일반적으로 자동화된 운영 및 유지 관리, 자동화된 테스트, 빅 데이터 분석, 크롤러, 웹 등이 포함됩니다.
현재 Python의 주요 응용 분야:
클라우드 컴퓨팅: 클라우드 컴퓨팅의 가장 인기 있는 언어, 대표적인 응용 프로그램인 OpenStack
WEB 개발: Youtube, Dropbox 및 Douban을 포함하여 많은 우수한 WEB 프레임워크와 많은 대형 웹사이트가 Python으로 개발되었습니다. . . , 일반적인 WEB 프레임워크에는 Django
과학적 작업, 인공 지능: 일반적인 라이브러리 NumPy, SciPy, Matplotlib, Enthought 라이브러리, pandas
시스템 작업이 포함됩니다. 웨이: 운영 및 유지보수 인력에게 꼭 필요한 언어 중 하나
금융: 퀀트 트레이딩, 금융 분석 분야에서는 파이썬을 많이 사용하지만, 가장 많이 사용되며 그 중요성은 해마다 증가하고 있습니다. 이유: Python은 동적 언어로서 명확하고 단순한 언어 구조, 풍부한 라이브러리, 성숙하고 안정적이며 효율적인 과학적 계산 및 통계 분석을 갖추고 있으며 생산 효율성이 c, c++ 및 java보다 훨씬 높습니다. 전략 백테스팅을 잘함
그래픽 GUI: PyQT, WxPython, TkInter
Python과 기타 공용 언어 비교
C 및 Python, Java, C# 등
C 언어: 코드는 프로세서에서 직접 실행되는 기계어 코드를 얻기 위해 컴파일됩니다.
다른 언어 : 코드를 컴파일하여 바이트코드를 구함, 가상 기계가 바이트코드를 실행하고 이를 기계어 코드로 변환한 후 프로세서에서 실행
Python과 C Python은 C에서 개발된 언어
사용 목적: Python에는 완전한 클래스 라이브러리가 있으며 사용이 간단합니다. 동일한 기능을 달성하려는 경우 Python은 10줄의 코드로 문제를 해결할 수 있지만 C에서는 100줄 이상이 필요할 수 있습니다. 🎜> 속도 관련: 고급 언어는 실행 속도 측면에서 C와 비교할 수 없습니다.
Python 및 Java, C# 등
사용 용도: Linux 원본 Python, 기타 언어 없습니다. 위의 언어는 매우 풍부한 클래스 라이브러리 지원을 제공합니다.
속도: Python은 속도가 약간 떨어질 수 있습니다.
따라서 Python과 다른 언어 사이에는 본질적인 차이가 없습니다. 다른 차이점은 특정 분야에 능숙하고 재능이 풍부하며 선입견이 있다는 것입니다.
Python은 동적으로 해석되고 강력한 형식의 정의 언어입니다.
장점:
- Python의 위치 지정 "우아하고" "명확하며" "단순"하므로 Python 프로그램은 항상 간단하고 이해하기 쉽습니다. Python을 배우는 초보자는 시작하기 쉬울 뿐만 아니라, 더 깊이 들어가면 매우 복잡한 프로그램을 작성할 수도 있습니다. 미래.
- 개발 효율성이 매우 높습니다. Python에는 매우 강력한 타사 라이브러리가 있습니다. 기본적으로 컴퓨터를 통해 어떤 기능을 구현하려는 경우 공식 Python 라이브러리에 해당 모듈이 있습니다. 직접 다운로드하면 기본 라이브러리를 기반으로 개발이 진행되므로 개발 주기가 크게 단축되고 휠 재발명을 피할 수 있습니다.
- 고급 언어 - Python으로 프로그램을 작성할 때 프로그램에서 사용하는 메모리를 관리하는 방법과 같은 저급 세부 사항을 생각할 필요가 없습니다.
- 이식성 - 오픈 소스 특성으로 인해 Python은 많은 플랫폼으로 이식되었습니다(다른 플랫폼에서 작동할 수 있도록 수정). 시스템 종속 기능을 주의 깊게 사용하지 않는다면 모든 Python 프로그램은 수정 없이 시장에 있는 거의 모든 시스템 플랫폼에서 실행될 수 있습니다.
- 확장성———— —중요한 조치가 필요한 경우 코드 조각을 더 빠르게 실행하거나 특정 알고리즘을 비공개로 유지하려면 프로그램의 일부를 C 또는 C++로 작성하여 Python 프로그램에서 사용할 수 있습니다.
- 삽입 가능성 - Python을 C/C++ 프로그램에 내장하여 프로그램 사용자에게 스크립팅 기능을 제공할 수 있습니다.
단점:
PYTHON은 해석 언어이고 소스 코드가 텍스트 형식으로 저장되므로 코드를 암호화할 수 없습니다. 하지만 프로젝트라면 이것이 단점이라고 생각하지 않습니다. 소스 코드가 필요합니다. 코드는 암호화되어야 하며, 처음부터 Python을 사용하여 구현해서는 안 됩니다.
스레드는 다중 CPU 문제를 활용할 수 없습니다. 이는 GIL의 가장 비판적인 단점 중 하나가 Global Interpreter Lock(Global Interpreter Lock)입니다. 컴퓨터 프로그래밍 언어 인터프리터. 언제든지 하나의 스레드만 실행되도록 스레드를 동기화하는 도구입니다. Python 스레드는 운영 체제의 기본 스레드입니다. Linux에서는 pthread이고 Windows에서는 Win 스레드입니다. 스레드 실행은 운영 체제에 의해 완전히 예약됩니다. Python 인터프리터 프로세스에는 기본 스레드와 여러 사용자 프로그램 실행 스레드가 있습니다. 멀티 코어 CPU 플랫폼에서도 GIL의 존재로 인해 멀티 스레드의 병렬 실행이 금지됩니다. 이 문제에 대한 절충 솔루션에 대해서는 나중에 스레드 및 프로세스 장에서 자세히 논의할 것입니다.
Python의 종류
Python 코드를 작성할 때 얻는 것은 A 텍스트 파일이 포함된 Python 코드입니다. .py 확장자를 사용합니다. 코드를 실행하려면 .py 파일을 실행하는 Python 인터프리터가 필요합니다.
파이썬 언어의 사양부터 인터프리터까지 전부 오픈소스이기 때문에 이론적으로는 레벨만 높으면 누구나 파이썬 인터프리터를 작성해 파이썬 코드를 실행할 수 있다(물론 매우 어렵다). 실제로 여러 Python 인터프리터가 존재합니다.
CPython
공식 Python 웹사이트에서 Python 2.7을 다운로드하여 설치하면 공식 버전의 인터프리터인 CPython을 직접 얻을 수 있습니다. 이 인터프리터는 C 언어로 개발되었기 때문에 CPython이라고 합니다. 명령줄에서 Python을 실행하면 CPython 인터프리터가 시작됩니다.
CPython은 가장 널리 사용되는 Python 인터프리터입니다. 튜토리얼의 모든 코드는 CPython에서도 실행됩니다.
IPython
IPython은 CPython을 기반으로 한 대화형 인터프리터입니다. 즉, IPython은 대화형 모드에서만 향상되지만 Python 코드를 실행하는 기능은 CPython과 완전히 동일합니다. CPython도 마찬가지입니다. 예를 들어 국내 브라우저는 겉모습은 다르지만 코어는 실제로 IE라고 부른다.
CPython은 >>>를 프롬프트로 사용하고 IPython은 In [일련 번호]:를 프롬프트로 사용합니다.
PyPy
PyPy는 실행 속도를 목표로 하는 또 다른 Python 인터프리터입니다. PyPy는 JIT 기술을 사용하여 Python 코드를 동적으로 컴파일하므로 Python 코드의 실행 속도를 크게 향상시킬 수 있습니다.
대부분의 Python 코드는 PyPy에서 실행될 수 있지만 PyPy와 CPython에는 약간의 차이가 있어 동일한 Python 코드를 두 인터프리터에서 실행하면 결과가 달라집니다. 코드를 PyPy에서 실행하려면 PyPy와 CPython의 차이점을 이해해야 합니다.
Jython
Jython은 Java 플랫폼에서 실행되는 Python 인터프리터로 Python 코드를 Java 바이트코드로 직접 컴파일하여 실행할 수 있습니다.
IronPython
IronPython은 Microsoft .Net 플랫폼에서 실행되는 Python 인터프리터이며 Python 코드를 .Net 바이트코드로 직접 컴파일할 수 있다는 점을 제외하면 Jython과 유사합니다.
요약
파이썬에는 많은 인터프리터가 있지만 가장 널리 사용되는 것은 CPython이다. Java 또는 .Net 플랫폼과 상호 작용하려는 경우 가장 좋은 방법은 Jython 또는 IronPython을 사용하는 것이 아니라 네트워크 호출을 통해 상호 작용하여 프로그램 간의 독립성을 보장하는 것입니다.
2. 파이썬 개발의 역사
귀도는 1989년 크리스마스 휴가를 보내기 위해 글을 쓰기 시작했다. Python 언어 컴파일러. Python이라는 이름은 Guido가 사랑한 TV 시리즈 Monty Python's Flying Circus에서 따왔습니다. 그는 Python이라는 새로운 언어가 C와 셸 사이에서 포괄적이고, 배우기 쉽고, 사용하기 쉽고, 확장 가능한 언어를 만드는 그의 이상을 충족할 수 있기를 바라고 있습니다.
-
1991년, 최초의 Python 컴파일러가 탄생했습니다. C언어로 구현되어 C언어 라이브러리 파일을 호출할 수 있습니다. Python은 탄생부터 클래스, 함수, 예외 처리, 테이블 및 사전을 포함한 핵심 데이터 유형, 모듈 기반 확장 시스템을 갖추고 있습니다.
-
Python 2.0 - 2000년 10월 16일, 메모리 재활용 메커니즘을 추가하여 현재 Python 언어 프레임워크의 기초를 형성했습니다.
-
Python 2.4 - 2004년 11월 30일, 같은 해 가장 인기 있는 WEB 프레임워크 Django가 탄생했습니다
-
Python 2.5 - 2006년 9월 19일
-
Python 2.6 - 2008년 10월 1일
Python 2.7 - 2010년 7월 3일
2014년 11월 Python 2.7이 2020년까지 지원된다고 발표되었으며, 이를 재확인했습니다. 사용자가 가능한 한 빨리 Python 3.4+로 전환할 것으로 예상되었으므로 2.8 릴리스는 없습니다.
Python 3.0 - 2008년 12월 3일
Python 3.1 - 2009년 6월 27일
Python 3.2 - 2011년 2월 20일
Python 3.3 - 2012년 9월 29일
Python 3.4 - 2014년 3월 16일
Python 3.5 - 2015년 9월 13일
三、Python 2 또는 3?
요약: Python 2.x는 레거시이고 Python 3.x는 언어의 현재이자 미래입니다
Python 3.0은 2008년에 출시되었습니다. 마지막 2 .x 버전 2.7 릴리스는 이 단종 릴리스에 대한
지원 확대에 대한 설명과 함께 2010년 중반에 출시되었습니다. 2.x 브랜치는 그 이후에는 새로운 주요 릴리스를 볼 수 없습니다. 3.x는
활발하게 개발 중이며 이미 2012년 버전 3.3,
2014년 3.4, 2015년 3.5를 포함해 5년 넘게 안정적인 릴리스를 거쳤습니다. 예를 들어 표준 라이브러리 개선 사항은
Python 3.x에서만 기본적으로 사용할 수 있습니다.
Guido van Rossum(Python 언어의 최초 창시자) ) 2.x 범위의 새 릴리스의 경우보다 이전 버전과의 호환성을 덜 고려하여 Python 2.x를 적절하게 정리하기로 결정했습니다. 가장 극적인 개선은 더 나은 유니코드 지원(기본적으로 모든 텍스트 문자열은 유니코드임)과 더 안전한 바이트/유니코드 분리입니다.
게다가 핵심 언어의 여러 측면(예: print 및 exec 명령문) , 플로어 피전을 사용하는 정수)는 초보자가 더 쉽게 배우고 나머지 언어와 더 일관성을 갖도록 조정되었으며 오래된 엉터리 부분은 제거되었습니다(예를 들어 모든 클래스는 이제 새로운 스타일의 "range()"입니다. "는 2.x와 같은 목록이 아닌 메모리 효율적인 반복 가능 항목을 반환합니다.)
py2与3的详细区别
PRINT IS A FUNCTION
문은 키워드 인수가 포함된 print() 함수로 대체되었습니다. 이전 명령문(PEP 3105)의 특수 구문 대부분을 대체합니다. 예:
Old: print "The answer is", 2*2 New: print("The answer is", 2*2)
Old: print x, # Trailing comma suppresses newline New: print(x, end=" ") # Appends a space instead of a newline
Old: print # Prints a newline
New: print() # You must call the function!
Old: print >>sys.stderr, "fatal error" New: print("fatal error", file=sys.stderr)
Old: print (x, y) # prints repr((x, y))
New: print((x, y)) # Not the same as print(x, y)!
항목 간 구분 기호를 맞춤설정할 수도 있습니다. 예:
print("There are <", 2**32, "> possibilities!", sep=""
ALL IS UNICODE NOW
从此不再为讨厌的字符编码而烦恼
还可以这样: (A,*REST,B)=RANGE(5)
<strong>>>> a,*rest,b = range(5)
>>> a,rest,b
(0, [1, 2, 3], 4)
</strong>
某些库改name了
Old Name
|
New Name
|
_winreg
|
winreg
|
ConfigParser
|
configparser
|
copy_reg
|
copyreg
|
Queue
|
queue
|
SocketServer
|
socketserver
|
markupbase
|
_markupbase
|
repr
|
reprlib
|
test.test_support
|
test.support
|
이전 이름
|
새 이름
|
_winreg
|
winreg
|
ConfigParser
|
구성 분석기
|
copy_reg
|
copyreg |
큐 |
큐 |
소켓서버 |
소켓서버 |
markupbase |
_markupbase | tr>
대표 |
reprlib |
test.test_support |
test.support |
tbody>
还有谁不支持PYTHON3?아직 Python 3을 지원하지 않는 인기 있는 모듈 중 하나는 Twisted(네트워킹 및 기타 애플리케이션용)입니다. 적극적으로 유지 관리되는 대부분의 라이브러리에는 3.x 지원 작업을 하는 사람들이 있습니다. 일부 라이브러리의 경우 다른 라이브러리보다 우선순위가 더 높습니다. 예를 들어 Twisted는 대부분 프로덕션 서버에 중점을 두는데, 새 버전을 지원하는 것은 물론 Python의 이전 버전을 지원하는 것이 중요합니다. 언어에 대한 주요 변경 사항이 포함된 버전입니다. (Twisted는3.x로 포팅하는 것이 결코 쉽지 않은 주요 패키지의 대표적인 예입니다.更多Pythonschool习【第一篇】Python简介 상关文章请关注PHP中文网!