Python 연구 노트(CSDN) - 1 - Python 소개

CSDN 과정을 따라 학습하세요. Python 입문 - 예비 지식 - CSDNPython 입문 스킬 트리 

먼저, 이 강좌의 마인드맵은 다음과 같습니다.


목차

 1.파이썬 정의

2 파이썬 개발의 역사

2.1 파이썬의 개발

2.2 Python 버전 업데이트

2.3 Python2.0과 Python3.0의 차이점

3 Python 컴파일 및 실행 프로세스

3.1 파이썬 인터프리터

3.2 파이썬 인터프리터의 종류

3.3 Python 바이트코드(.pyc)

3.4 파이썬 가상 머신

4개의 파이썬 애플리케이션

파이썬의 5가지 특징

파이썬의 6가지 장점


 1.파이썬 정의

Python은 해석, 컴파일, 대화형 및 객체 지향 스크립팅을 결합한 배우기 쉬운 스크립팅 언어입니다 . Python은 높은 수준의 데이터 구조, 구문 및 동적 타이핑, 해석 가능성을 제공하므로 개발자가 선택하는 프로그래밍 언어입니다.

  • Python은 해석된 언어입니다.  개발 프로세스에는 컴파일 부분이 없습니다. PHP 및 Perl 언어와 유사합니다.

  • Python은 대화형 언어입니다.  Python 프롬프트 >>> 바로 다음에 코드를 실행할 수 있습니다.

  • Python은 객체 지향 언어입니다.  Python은 코드가 객체에 캡슐화되는 객체 지향 스타일 또는 프로그래밍 기술을 지원합니다.

2 파이썬 개발의 역사

2.1 파이썬의 개발

Python의 창시자는 Guido van Rossum입니다 . 1989년, 귀도는 크리스마스의 지루함을 없애기 위해 ABC 언어를 계승하여 새로운 스크립트 해석기를 개발하기로 결정했습니다.

2.2 Python 버전 업데이트

 최신 버전의 Python이 3.10.6(2022.8.15)에 도달했습니다.

파이썬 다운로드 | Python.org

2.3 Python2.0과 Python3.0의 차이점

  • 출력 측면

Python2.0은 다음과 같이 출력에 print 키워드를 사용합니다. print "Hello";

Python3.0은 print("Hello")와 같은 print() 함수를 사용합니다.

  • 입력측면

Python2.0은 raw_input() 함수를 사용합니다. 예: name=raw_input("이름을 입력하십시오:");

Python3.0은 name=input("이름을 입력하십시오:")과 같은 input() 함수를 사용합니다.

  • 문자열 인코딩 형식

Python2.0은 기본적으로 ASCII 인코딩을 사용하여 입력 문자열을 인코딩합니다.

Python3.0은 기본적으로 유니코드 인코딩을 사용하여 문자열을 인코딩합니다.

  • 문자열 형식을 지정하는 방법

Python2.0은 % 자리 표시자를 사용하여 다음과 같은 표준화된 형식으로 문자열을 출력합니다: "Hello,%s" % ("World");

Python3.0은 "Hello,{}".format("World")와 같은 format() 함수를 사용합니다.

  • 소스 파일 인코딩 형식

Python2.0은 기본적으로 ASCII를 사용하므로 중국어를 사용할 때는 소스 파일 시작 부분에 주석 줄을 추가하십시오: # - - 코딩: utf-8 - -;

Python3.0은 기본적으로 utf-8을 사용합니다.

  • 데이터 유형

python2.0에는 int 및 long 정수 유형이 있습니다.

python3.0에는 정수 유형 int만 있습니다.

  • 코드 사양

Python 2.0 소스코드는 표준화되어 있지 않으며 중복된 코드가 많습니다.

Python 3.0 소스 코드는 간결하고 아름답고 우아합니다.

3 Python 컴파일 및 실행 프로세스

Python 소스 코드 파일(.py)은 Python 명령을 사용하여 직접 실행할 수 있지만 실제로 Python은 Python 소스 코드를 직접 해석하지 않으며 컴파일 및 실행 프로세스가 있습니다.구체적인 프로세스는 다음과 같습니다.

먼저 Python 소스 코드(.py 파일)를 컴파일하여 Python 바이트 코드(Python Byte Code, 바이트코드 파일 확장자는 일반적으로 .pyc)를 생성한 후 Python Virtual Machine(약칭: PVM) Python 바이트코드에 의해 실행됩니다. , 마지막으로 실행 결과를 터미널에 출력합니다.

위의 컴파일 및 실행 프로세스를 통해 분석할 수 있습니다. Python은 Python 소스 코드 가 아닌 Python 바이트 코드를 해석하는 것을 의미하는 해석 언어입니다 . 이 메커니즘의 기본 아이디어는 Java 및 .NET과 일치합니다.

3.1 파이썬 인터프리터

Python 인터프리터( Interpreter ) 는 Python 언어를 컴퓨터 CPU가 이해할 수 있는 기계 명령어로 변환합니다.

그것은 우리가 설치하고 사용한 Python입니다.

3.2 파이썬 인터프리터의 종류

  • Cpython : C 언어로 개발되었으며 명령줄에서 Python을 실행하면 Cpython 인터프리터가 시작됩니다. 공식적으로 다운로드되는 python2.7은 Cpython입니다. Cpython은 >>>를 프롬프트로 사용합니다.
  • Ipython : CPython을 기반으로 한 대화형 인터프리터 즉, IPython은 대화형 모드에서만 향상되지만 Python 코드를 실행하는 기능은 CPython과 완전히 동일합니다. IPython은 In [일련 번호]:를 프롬프트로 사용합니다.
  • PyPy : 주로 실행 속도를 목표로 합니다. JIT 기술을 사용하여 Python 코드를 동적으로 컴파일합니다. 대부분의 Python 코드는 PyPy에서 실행될 수 있습니다.
  • Jpython : Java 플랫폼에서 실행되는 Python 인터프리터로, Python 코드를 Java 바이트코드로 직접 컴파일하여 실행할 수 있습니다.
  • IronPython : Python 코드를 .Net 바이트코드로 직접 컴파일할 수 있는 Microsoft .Net 플랫폼에서 실행되는 Python 인터프리터입니다.
  • Boost.Python : Python 및 C++ 클래스 라이브러리가 서로 호출할 수 있도록 합니다(.pyc).

3.3 Python 바이트코드(.pyc)

Python의 바이트코드는 데이터 유형이고, Python 코드의 컴파일된 결과는 바이트코드 객체입니다. 바이트코드 객체는 가상 머신에 의해 로드되어 직접 실행될 수 있으며, pyc 파일은 하드 디스크에 저장된 바이트코드 형태입니다.

실행해야 할 test.py 파일이 있으면 먼저 .pyc 파일을 생성하는데, 일반적으로 가능한 상황은 다음과 같습니다.

  1. python test.py를 실행하면 test.py가 바이트코드로 컴파일되고 해석되어 실행되지만 test.pyc는 생성되지 않습니다.
  2. import urllib2와 같은 다른 모듈이 test.py에 로드되면 Python은 urllib2.py를 바이트코드로 컴파일하고 urllib2.pyc를 생성한 다음 바이트코드를 해석하고 실행합니다.
  3. test.pyc를 생성하려면 Python의 내장 모듈 py_compile을 사용하여 컴파일 하거나 명령을 실행하여 test.pyc를 생성할 수 있습니다. python -m py_compile test.py 
  4. 모듈을 로드할 때 .py와 .pyc가 모두 존재하면 Python은 .pyc를 사용하여 실행됩니다. .pyc의 컴파일 시간이 .py의 시간보다 빠르면 .py 파일이 다시 컴파일되고 .pyc 파일이 실행됩니다. 업데이트됩니다.

3.4 파이썬 가상 머신

파이썬은 py 파일을 머신 코드로 컴파일하여 실행하는 것이 아니라, 파이썬 가상 머신이 py 문을 하나씩 해석하여 실행하는데, 파이썬 가상 머신의 실행 방식은 일반적인 x86 실행 파일의 실행 방식을 모방하는 것이다.

가상 머신 입력은 바이트코드 .pyc 파일이고, 바이트코드 파일 로더는 바이너리 .pyc 파일을 메모리에 로드하고, 실행 엔진에 의해 해석되어 실행되며, 출력은 바이트코드 파일의 실행 결과입니다.

4개의 파이썬 애플리케이션

Python 애플리케이션에는 주로 다음 영역이 포함됩니다.

  • Linux/UNIX 운영 및 유지 관리: 시스템 유지 관리를 용이하게 하는 API(Application Programing Interface)를 제공합니다.
  • GUI 프로그램 개발(PyQt, Kivy 등)
  • 웹 프로그램 개발(Django, Flask 및 기타 프레임워크): 최신 XML 기술을 지원합니다.
  • 모바일 앱 개발(PyQt, Kivy 등): Python의 PyOpenGL 모듈은 "OpenGL 애플리케이션 프로그래밍 인터페이스"를 캡슐화하고 2차원 및 3차원 이미지 처리를 수행할 수 있습니다. PyGame 모듈은 게임 소프트웨어를 작성하는 데 사용될 수 있습니다.
  • 웹 크롤러(검색 엔진, 딥 러닝 및 기타 분야에 대한 데이터 소스 제공)
  • 네트워크 프로그래밍(소켓과 같은 프로토콜 기반): 분산 애플리케이션을 쉽고 빠르게 개발할 수 있는 소켓 프로그래밍을 지원하는 풍부한 모듈을 제공합니다. Zope, Mnet, BitTorrent 등 다수의 대규모 소프트웨어 개발 프로젝트에서 Google이 이를 광범위하게 활용하고 있습니다.
  • 그래픽 처리: 그래픽 처리를 용이하게 할 수 있는 PIL 및 Tkinter와 같은 그래픽 라이브러리에서 지원됩니다.
  • 텍스트 처리: Python에서 제공하는 re 모듈은 정규식을 지원할 수 있으며 SGML 및 XML 분석 모듈도 제공합니다. 많은 프로그래머가 Python을 사용하여 XML 프로그램을 개발합니다.
  • 데이터베이스 프로그래밍: Python DB-API(데이터베이스 애플리케이션 프로그래밍 인터페이스) 사양을 따르는 모듈을 통해 Microsoft SQL Server, Oracle, Sybase, DB2, Mysql, SQLite 및 기타 데이터베이스와 통신할 수 있습니다. Python에는 완전한 SQL 환경을 제공하는 Gadfly 모듈이 함께 제공됩니다.
  • 데이터 과학: NumPy 확장은 많은 표준 수학 라이브러리에 대한 광범위한 인터페이스를 제공합니다. 기계 학습(scikit-learn, TensorFlow 프레임워크), 데이터 통계 분석 및 시각화(Matplotlib, seaborn 프레임워크).

파이썬의 5가지 특징

  • 읽기 쉽고 배우기 쉽습니다 . Python은 명확한 스타일과 강제 들여쓰기가 있는 매우 간단한 언어입니다. Python은 간단한 구문을 가지며 시작하기가 매우 쉽습니다.
  • 무료 및 오픈 소스 : Python은 무료/오픈 소스 소프트웨어입니다. 소스코드를 직접 수정하고 사용할 수 있습니다.
  • 이식성 : Python은 Linux, Windows, VxWorks, PlayStation, Windows CE, PocketPC 등 다양한 플랫폼에 이식할 수 있습니다.
  • 해석성 : Python 인터프리터는 소스 코드를 바이트코드로 변환한 후 컴퓨터가 사용하는 기계어로 번역하여 실행합니다. 즉, Python 코드를 실행하기 전에 컴파일할 필요가 없습니다.
  • 객체 지향 : Python은 객체 지향 프로그래밍을 지원합니다. 프로그램은 구성과 상속을 통해 클래스를 정의합니다.
  • 확장성 : 더 빠르게 실행하기 위해 중요한 코드가 필요하거나 일부 알고리즘을 공개하지 않으려는 경우 프로그램의 일부를 C 또는 C++로 작성한 다음 Python 프로그램에서 호출할 수 있습니다.
  • 삽입 가능성 : Python을 C/C++ 프로그램에 삽입하여 프로그램 사용자에게 스크립팅 기능을 제공할 수 있습니다.
  • 대화형 명령줄 : Python은 단일 단계 리터럴 번역으로 실행될 수 있으며 코드는 Python 프롬프트 >>> 바로 다음에 실행될 수 있습니다.
  • 풍부한 표준 라이브러리 : Python 표준 라이브러리에는 문자열 처리(사전, 배열 슬라이싱, 정규식 re), 문서 생성, 멀티스레딩, 직렬화, 데이터베이스, HTML/XML 구문 분석(BeautifulSoup, Expat), 단위 테스트(PyUnit ), 코드 버전이 포함됩니다. 제어(PySVN), WAV 파일, 네트워크 제어(urllib2), 암호화 시스템, GUI(그래픽 사용자 인터페이스, PyQt), 그래픽 모듈(Tkinter, PyTCL, WxPython) 등 표준 라이브러리 외에도 wxPython, Twisted 및 Python 이미징 라이브러리와 같은 다른 고품질 라이브러리가 많이 있습니다.
  • 표준화 : 강제 들여쓰기를 사용하면 코드의 가독성이 높아지고 시각적 혼란이 줄어듭니다.
  • 글루(Glue) 언어 : Python은 서로 다른 언어로 작성된 프로그램을 함께 "접착"하기 위한 글루 언어로 사용되는 경우가 많습니다. Boost.Python을 사용하면 Python 및 C++ 클래스 라이브러리가 서로 호출할 수 있습니다(.pyc). Jpython은 Java로 구현된 Python이며 두 클래스 라이브러리를 동시에 사용할 수 있습니다. Ironpython은 .NET 플랫폼의 Python 버전입니다.

파이썬의 6가지 장점

  • 배우기 쉽고 초보자에게도 적합하지만 전문가에게도 적합합니다.
  • 확장성이 뛰어나 대규모 프로젝트나 소규모 일회성 프로그램(스크립트라고 함)에 적합
  • 휴대용, 크로스 플랫폼
  • 삽입 가능(ArcGIS를 스크립트 가능하게 만들기)
  • 안정적이고 성숙하다
  • 대규모 사용자 커뮤니티

추천

출처blog.csdn.net/weixin_44362628/article/details/126352061