2017-07-15, 파이썬을 배우는 첫 날입니다.
우선 Python은 현재 매우 인기 있는 개발 언어이며, 창립자는 Guido Van Rossum입니다. 현재 상황으로 보면 Python 언어의 인기는 계속해서 상승하고 있으며, C#을 제치고 4위로 올라섰습니다. Python은 우아함, 단순성, 명확성을 옹호하며 우수하고 널리 사용되는 언어입니다.
1. Python은 실행 중에 해석이 바뀌는 해석 언어입니다.
먼저 컴파일러에 대해 설명합니다. 소스 프로그램의 모든 명령문을 기계어로 컴파일하여 바이너리 파일로 저장합니다. 실행하면 컴파일된 바이너리 파일을 기반으로 컴퓨터가 직접 실행합니다. . 인터프리터는 프로그램이 실행될 때 컴퓨터가 실행할 수 있도록 하나씩 기계어로 해석하는 역할을 합니다. 따라서 당연히 실행 속도는 컴파일된 파일만큼 빠르지 않습니다. 이는 또한 컴퓨터가 우리가 작성한 코드를 직접 인식하고 실행할 수 없고 컴퓨터 언어(예: 바이너리 파일)만 인식할 수 있기 때문입니다.
Compiled VS Interpreted
Compiled
장점: 컴파일러에는 코드를 최적화하기 위한 사전 컴파일 프로세스가 있습니다. 컴파일은 한 번만 수행되고 런타임 중에 다시 컴파일할 필요가 없기 때문에 컴파일된 언어의 실행 효율성이 매우 높습니다. 로케일 없이 직접 실행할 수 있습니다.
단점: 컴파일러가 프로그램을 컴파일한 후 코드가 수정되면 다시 컴파일해야 합니다. 컴파일을 하게 되면 해당 운영체제의 환경에 따라 기계어가 생성되는데, 서로 다른 운영체제 간 이식 시에는 실행하려는 운영체제의 환경에 따라 서로 다른 실행 파일로 컴파일을 해야 하는 경우가 발생한다.
해석 유형:
장점: 플랫폼 호환성이 좋고 인터프리터(가상 머신)만 설치되어 있다면 어떤 환경에서도 실행 가능합니다. 동적으로 해석되기 때문에 프로그램 자체가 매우 유연합니다. 코드를 수정할 때 코드를 수정하고 직접 실행할 필요가 없으며, 프로그램 업데이트에 종료 유지 관리가 필요하지 않습니다.
단점: 코드가 실행될 때마다 동적 해석 과정이 수반되어야 합니다. 성능은 컴파일된 언어만큼 좋지 않습니다.
왜 다른 언어가 아니고 Python인가요?
C 및 Python, Java, C# 등
C 언어: 코드는 기계어 코드를 얻기 위해 컴파일되며, 기계어 코드는 프로세서에서 직접 실행됩니다. 각 명령어는 CPU 작업을 제어합니다.
기타 언어: 코드를 컴파일하여 바이트코드를 얻고, 가상 머신은 바이트코드를 실행하여 머신코드로 변환한 후 프로세서에서 실행합니다
Python 및 C Python은 C
에서 개발된 언어입니다. 사용 용도: Python에는 완전한 클래스 라이브러리가 있습니다. 구현하고 싶다면 Python에서는 10줄의 코드로 동일한 기능을 해결할 수 있지만 C에서는 100줄 이상이 필요할 수 있습니다.
속도 관련: C에 비해 Python의 실행 속도는 확실히 느립니다.
Python 및 Java, C# 등
사용: Linux 원본 Python, 다른 언어에서는 사용할 수 없습니다. 위 언어는 매우 풍부한 클래스 라이브러리 지원을 제공합니다.
속도 관련: Python은 속도가 약간 떨어질 수 있습니다.
그래서, Python과 다른 언어 사이에는 본질적인 차이가 없습니다. 다른 차이점은 다음과 같습니다. 특정 분야에 능숙하고 재능이 풍부하며 선입견이 있습니다.
Python의 유형
Cpython
Python의 공식 버전은 C 언어로 구현되며 가장 널리 사용되며 소스 파일(py 파일)을 바이트코드 파일(pyc 파일)로 변환합니다. ) ) 그런 다음 Python 가상 머신에서 실행합니다.
Jyhton
Python의 Java 구현인 Jython은 Python 코드를 Java 바이트코드로 동적으로 컴파일한 다음 JVM에서 실행합니다.
IronPython
Python의 C# 구현인 IronPython은 Python 코드를 C# 바이트코드로 컴파일한 다음 CLR에서 실행합니다. (Jython과 유사)
PyPy(특수)
Python으로 구현된 Python은 Python의 바이트코드를 기계어 코드로 다시 컴파일합니다.
RubyPython, 브라이썬...
1. 저수준 언어와 고급 언어
원래 컴퓨터 프로그램은 0과 1의 시퀀스로 표현되었습니다. 프로그래머는 번역 없이 기계 명령어를 직접 사용하여 종이 테이프에 구멍을 뚫어 결과를 실행할 수 있었습니다. . 이후에는 기억을 용이하게 하기 위해 0과 1의 시퀀스로 표현되는 기계 명령어가 모두 니모닉 기호가 되었고, 이러한 기계 명령어와 일대일 대응하는 니모닉이 어셈블리 명령어가 되면서 어셈블리 언어가 탄생하게 되었습니다. 기계 명령어와 어셈블리 명령어는 모두 기계 지향적이며 집합적으로 저수준 언어라고 합니다. 특정 기계에 대한 기계 명령을 위한 니모닉이기 때문에 어셈블리 언어는 기계(특정 CPU 아키텍처)로부터 독립될 수 없습니다. 하지만 어셈블리 언어도 실행되기 전에 기계 명령어로 변환되어야 합니다. 따라서 한 기계에서 실행되는 어셈블리 언어를 다른 기계에서 실행되는 기계 명령어로 번역하는 방법도 있는데, 그것이 바로 크로스 어셈블리 기술입니다.
고급 언어는 인간의 논리적 사고 관점에서 출발한 컴퓨터 언어로, 추상화 수준이 크게 향상되어 특정 기계에서 실행될 수 있습니다. 수준의 언어 명령문을 완료하려면 여러 기계 명령어가 필요한 경우가 많습니다. 고급 언어의 기계 독립적인 특성은 컴파일러가 서로 다른 기계에 대해 서로 다른 개체 코드(또는 기계 명령어)를 생성함으로써 달성됩니다. 구체적으로 말하자면, 고급 언어는 어느 정도까지 컴파일해야 합니까? 이는 컴파일 기술과 관련이 있으며 직접 실행 가능한 대상 코드로 컴파일할 수도 있고 중간 표현으로 컴파일한 다음 다른 기계와 컴퓨터에서 얻을 수도 있습니다. 시스템을 실행하려면 일반적으로 인터프리터나 가상 머신의 지원과 같은 지원 환경이 필요합니다. 바이트코드로 컴파일된 다음 다양한 플랫폼에서 가상 머신에 의해 실행되는 Java 프로그램이 좋은 예입니다. 따라서 고급 언어가 기계에 의존하지 않는다는 것은 고급 언어의 프로그램 자체가 다른 기계나 플랫폼에서 변경되지 않고 그대로 유지되고 컴파일러에 의해 컴파일된 대상 코드가 다른 기계에 적응한다는 것을 의미합니다. 이러한 의미에서 교차 조립을 통해 일부 어셈블러는 서로 다른 기계 간의 이식성을 달성할 수도 있지만 이 접근 방식을 통해 얻은 이식성은 고급 언어보다 훨씬 덜 편리하고 실용적입니다.
2. 컴파일과 해석
컴파일은 소스 프로그램을 실행 가능한 타겟 코드로 번역하는 것인데, 해석은 소스 프로그램의 번역과 실행을 한번에 완료하는 것이지 생성을 하지 않습니다. 저장 가능한 객체 코드. 이것은 단지 겉보기에 불과합니다. 해석과 실행의 경우 프로그램이 실행될 때 제어권은 사용자 프로그램에 있고 컴파일과 실행에 대한 제어권은 사용자 프로그램에 있습니다. .
해석은 동적 특성과 이식성이 좋습니다. 예를 들어 해석 및 실행 시 변수 유형을 동적으로 변경하고, 프로그램을 수정하고, 좋은 디버깅 진단 정보를 프로그램에 삽입할 수 있습니다. 을 사용하면 인터프리터가 이식된 시스템에서 프로그램을 수정하지 않고도 실행할 수 있습니다. 동시에 인터프리터는 사용자 프로그램에 공간을 할당해야 할 뿐만 아니라 인터프리터 자체도 귀중한 시스템 자원을 점유하기 때문에 낮은 실행 효율성과 큰 공간 점유 등 큰 단점도 가지고 있습니다.
컴파일러는 소스 프로그램의 각 명령문을 기계어로 컴파일하여 바이너리 파일로 저장합니다. 이런 방식으로 컴퓨터는 런타임에 기계어로 프로그램을 직접 실행할 수 있으며 이는 인터프리터만 수행하면 매우 빠릅니다. 프로그램을 실행시키면 컴퓨터가 실행할 수 있도록 하나씩 기계어로 해석되기 때문에 컴파일된 프로그램만큼 실행속도가 빠르지 않습니다.
컴파일된 유형과 해석된 유형 먼저 컴파일된 유형을 살펴보겠습니다. 사실 어셈블리 언어와 동일합니다. 소스 코드를 변환하고 해당 실행 코드를 생성하는 번역을 담당하는 프로그램도 있습니다. 좀 더 전문적으로 말하면 이 과정을 컴파일이라고 하고, 컴파일을 담당하는 프로그램을 당연히 컴파일러라고 부릅니다. 우리가 작성하는 프로그램 코드가 소스 파일에 포함되어 있는 경우 일반적으로 실행 파일은 컴파일 직후 생성되며 직접 실행할 수 있습니다. 그러나 보다 복잡한 프로젝트의 경우 관리를 용이하게 하기 위해 일반적으로 코드를 다양한 소스 파일에 분산시키고 다른 모듈로 구성합니다. 이때, 각 파일을 컴파일하면 앞서 언급한 실행파일 대신 목적파일(Object file)이 생성된다. 일반적으로 소스 파일의 컴파일은 대상 파일에 해당합니다. 이러한 대상 파일의 내용은 기본적으로 실행 가능한 코드이지만 전체 프로젝트의 일부일 뿐이므로 아직 직접 실행할 수는 없습니다. 모든 소스 파일이 컴파일된 후 마침내 이러한 반제품 대상 파일을 실행 파일로 "패키지"할 수 있습니다. 이 프로세스는 대상 파일이 연결되고 어셈블되는 것처럼 보이기 때문에 다른 프로그램에 의해 완료됩니다. , 그래서 링크라고도 하고, 링크를 담당하는 프로그램을...링커라고 부르기도 합니다. 링커에는 대상 파일을 연결하는 것 외에도 아이콘 파일, 사운드 파일 등과 같은 다양한 리소스가 있을 수도 있습니다. 또한 대상 파일 간의 중복된 중복 코드를 제거하는 역할도 담당하므로... 역시 상당히 피곤합니다. . 링크가 완료되면 일반적으로 원하는 실행 파일을 얻을 수 있습니다.
위에서 컴파일 언어의 특징을 간략하게 소개했다면 이제 해석 언어를 살펴보겠습니다. 아, 문자 그대로 '컴파일하다'와 '해석하다'는 모두 '번역하다'라는 뜻인데, 번역의 시기에 차이가 있습니다. 예를 들어, 외국 책을 읽을 계획인데 외국어를 모른다면 번역가를 찾아서 책 전체를 처음부터 끝까지 번역할 수 있는 충분한 시간을 준 다음 책을 번역할 수 있습니다. 버전이 제공되어 읽을 수 있습니다. 또는 즉시 번역자에게 읽기 지원을 요청할 수 있으며 특정 장으로 돌아가려면 번역자가 번역해야 합니다. 또 너.
두 가지 방법 중 전자는 방금 언급한 컴파일된 유형과 동일합니다. 모든 코드를 한 번에 기계어로 변환한 다음 실행 파일에 작성하고 후자는 우리가 말하는 해석된 유형과 동일합니다. : 프로그램이 실행 중일 때 이전에는 소스 프로그램만 있었고 실행 가능한 프로그램은 없었으며 프로그램이 소스 프로그램의 특정 명령을 실행할 때마다 소스 코드를 변환하는 인터프리터라는 쉘 프로그램이 있었습니다. 즉, 끊임없이 해석하고, 실행하고, 해석하고, 실행하는 것입니다. 따라서 해석된 프로그램은 프로그램 해석과 분리될 수 없습니다. 예를 들어 초기 BASIC은 고전적인 해석 언어입니다. BASIC 프로그램을 실행하려면 BASIC 환경에 들어가야 프로그램 소스 파일을 로드하여 실행할 수 있습니다. 해석된 프로그램에서는 프로그램이 항상 소스코드의 형태로 나타나기 때문에 해당 해석기가 있으면 이식에는 거의 문제가 없습니다. 컴파일된 프로그램의 소스 코드도 이식할 수 있지만 전제 조건은 서로 다른 시스템에 대해 별도로 컴파일해야 한다는 것입니다. 복잡한 프로젝트의 경우 실제로 시간이 많이 걸리는 작업이며 일부 세부 사항은 여전히 필요합니다. 수정되었습니다. 또한, 해석된 프로그램은 컴파일 단계를 저장하고 수정 및 디버깅에 매우 편리합니다. 컴파일된 프로그램과 달리 오랜 시간 동안 컴파일...링크...컴파일을 기다릴 필요가 없습니다. 작은 변경이 있을 때마다 프로세스를 진행하세요. 그러나 모든 것에는 장단점이 있습니다. 해석된 프로그램은 컴파일 프로세스를 실행 프로세스에 포함시키기 때문에, 이는 해석된 프로그램이 컴파일된 프로그램보다 훨씬 느리다고 판단합니다. 속도 차이가 수백 배나 된다는 것은 놀라운 일이 아닙니다.
컴파일형과 해석형은 모두 장단점이 있습니다. 전자는 동일한 조건에서 프로그램 실행 속도가 빠르고 시스템 요구 사항이 낮기 때문에 C/C++, Pascal/Object Pascal(Delphi) 등 운영 체제, 대규모 응용 프로그램, 데이터베이스 시스템 등을 개발할 때 사용됩니다. , VB 및 기타 기본 프로그램은 모두 컴파일된 언어로 간주될 수 있지만 고속 요구 사항이 없고 서로 다른 시스템 플랫폼 간의 호환성을 위한 특정 요구 사항이 있는 프로그램과 같은 일부 웹 스크립트, 서버 스크립트 및 보조 개발 인터페이스는 일반적으로 사용됩니다. Java 및 JavaScript, VBScript, Perl, Python 등과 같은 해석 언어.
그러나 컴파일된 언어와 해석된 언어는 각각의 장점과 단점이 있고 서로 반대되기 때문에 많은 신흥 언어는 이 둘을 절충하는 경향이 있습니다. 예를 들어 Java 언어는 해석된 언어의 특성에 더 가깝습니다. 실행되기 전에 사전 프로그래밍되어 있으며, 사전 컴파일 후 생성된 코드는 기계어 코드와 Java 소스 코드 사이의 중간 코드이며 실행 시 JVM(Java의 가상 머신 플랫폼)에 의해 해석되고 실행됩니다. , 이는 통역사로 간주될 수 있습니다). 이는 소스 코드의 높은 추상화 및 이식성 특성을 유지할 뿐만 아니라 소스 코드의 사전 컴파일 작업 대부분을 완료했기 때문에 "순수하게 해석된" 프로그램보다 훨씬 빠르게 실행됩니다. VB6(또는 이전 버전) 및 C#과 같은 언어의 경우 표면적으로는 .exe 실행 프로그램 파일을 생성하지만 VB6이 컴파일된 후 실제로 생성되는 것도 중간 코드이지만 컴파일러는 그 앞에 단락을 삽입합니다. . 외부 인터프리터(인터프리터는 사용자가 작성한 프로그램과 독립적이며 시스템의 DLL 파일에 저장됨. VB6으로 컴파일된 모든 실행 프로그램이 이를 사용해야 함)의 코드를 자동으로 호출하여 실제 실행 프로그램 본체를 해석합니다. C#(및 기타 .net 언어 컴파일러)은 .net 해석 시스템(JVM과 마찬가지로 가상 머신 플랫폼이기도 함)에 의해 실제로 실행되는 .net 대상 코드를 생성합니다. 물론 .net 대상 코드는 이미 상당히 "낮은 수준"이고 기계어에 가깝기 때문에 여전히 컴파일된 언어로 간주되며 Java가 주장하는 "컴파일"만큼 이식성이 강력하지 않습니다. 한 번만 실행하면 어디에서나 실행됩니다. 그리고 .net은 "한 번 인코딩하면 어디서나 컴파일됩니다"입니다. 하하, 물론 이것은 주제에서 벗어났습니다. 즉, 디자인 기술과 하드웨어의 지속적인 발전으로 인해 컴파일된 방법과 해석된 방법 사이의 경계가 점점 모호해지고 있습니다.동적 언어와 정적 언어 일반적으로 우리가 동적 언어와 정적 언어라고 부르는 것은 동적 유형 언어와 정적 유형 언어를 의미합니다.
(1) 동적 유형 언어: 동적 유형 언어는 런타임 중에 데이터 유형 검사를 수행하는 언어를 의미합니다. 즉, 동적 유형 언어로 프로그래밍할 때 어떤 변수에 대해서도 데이터 유형을 지정할 필요가 없습니다. , 언어는 변수에 처음 할당할 때 데이터 유형을 내부적으로 기록합니다. Python과 Ruby는 전형적인 동적 유형 언어이며 VBScript와 같은 다른 다양한 스크립팅 언어도 다소 동적 유형 언어입니다.
(2) 정적 유형 언어: 정적 유형 언어는 동적 유형 언어와 정반대로 컴파일 중에 데이터 유형을 확인하므로 프로그램 작성 시 모든 변수의 데이터 유형을 선언해야 합니다. C/ C++ 정적인 유형의 언어를 대표하는 대표적인 언어로 C#, JAVA 등이 있습니다.
강한 타입 정의 언어와 약한 타입 정의 언어
(1) 강력한 타입 정의 언어: 데이터 타입 정의를 강제하는 언어. 즉, 변수에 특정 데이터 유형이 할당되면 캐스트되지 않으면 항상 해당 데이터 유형이 됩니다. 예를 들어, 정수 변수 a를 정의하면 프로그램이 a를 문자열 유형으로 처리하는 것이 불가능합니다. 강력한 형식의 정의 언어는 형식이 안전한 언어입니다.
(2) 약한 유형 정의 언어: 데이터 유형을 무시할 수 있는 언어입니다. 이는 변수에 다양한 데이터 유형의 값을 할당할 수 있는 강력한 유형의 정의 언어와 반대입니다.
강력한 유형의 정의 언어는 약한 유형의 정의 언어보다 약간 느릴 수 있지만 강력한 유형의 정의 언어가 가져오는 엄격함은 많은 오류를 효과적으로 방지할 수 있습니다. 게다가, "이 언어가 동적 언어인지 여부"와 "이 언어가 유형에 안전한지 여부" 사이에는 전혀 연관성이 없습니다! 예를 들어, Python은 강력한 형식의 정의 언어인 동적 언어(유형 안전 언어)입니다. VBScript는 약한 형식의 정의 언어인 동적 언어(유형 안전하지 않은 언어)입니다. (유형 안전 언어) 언어).
위의 소개를 통해 우리는 Python이 동적으로 해석되는 강력한 유형 정의 언어라는 결론을 내릴 수 있습니다. 그렇다면 이러한 유전자로 인해 가능해진 파이썬의 장점과 단점은 무엇일까? 계속해서 아래를 살펴보겠습니다.
Python의 장점과 단점
먼저 장점부터 살펴보겠습니다
Python의 포지셔닝은 "우아함", "명확함", "간단함"이므로 Python 프로그램은 항상 단순하고 단순해 보입니다. 이해하기 쉬움, Python을 배우는 초보자는 시작하기 쉬울 뿐만 아니라 앞으로 더 깊이 들어가면 매우 복잡한 프로그램을 작성할 수도 있습니다.
개발 효율성이 매우 높습니다. Python에는 매우 강력한 타사 라이브러리가 있습니다. 기본적으로 컴퓨터를 통해 기능을 구현하려는 경우 Python 공식 라이브러리에서 직접 다운로드하고 지원받을 수 있습니다. 호출하면 기본 라이브러리에서 개발이 이전 개발 주기를 기반으로 수행되므로 개발 주기가 크게 줄어들고 휠 재발명을 피할 수 있습니다.
고급 언어————파이썬 언어로 프로그램을 작성할 때 프로그램에서 사용하는 메모리를 관리하는 방법과 같은 저급 세부 사항을 생각할 필요가 없습니다
이식성—— - 오픈 소스 특성으로 인해 Python은 많은 플랫폼으로 이식되었습니다(다른 플랫폼에서 작동할 수 있도록 수정). 시스템 종속 기능을 주의 깊게 사용하지 않는다면 모든 Python 프로그램은 수정 없이 시장에 있는 거의 모든 시스템 플랫폼에서 실행될 수 있습니다
확장성————필요한 경우 중요한 코드 조각을 만들려면 더 빠르게 실행하거나 특정 알고리즘을 비공개로 유지하려면 프로그램의 일부를 C 또는 C++로 작성하여 Python 프로그램에서 사용할 수 있습니다.
임베디드 가능성——Python을 C/C++ 프로그램에 내장하여 프로그램 사용자에게 스크립팅 기능을 제공할 수 있습니다.
단점을 살펴보면
느린 속도, Python의 실행 속도는 실제로 C 언어보다 훨씬 느리고, JAVA보다 느리기 때문에 소위 말하는 많은 사람들이 멸시하는 주된 이유입니다. 실제로 여기서 말하는 느린 실행 속도는 대부분의 경우 사용자가 직접 체감할 수 없습니다. 예를 들어 C에서 프로그램을 실행하는 데는 0.01초가 걸립니다. 하지만 Python에서 프로그램을 실행하는 데는 0.1초가 걸리므로 C 언어는 Python보다 직접적으로 10배 빠릅니다. 이는 매우 과장된 것이지만 육안으로 직접 인식할 수는 없습니다. 보통 사람이 인지할 수 있는 시간은 0.15~0.4초 정도죠. 하하. 실제로, 극도로 빠른 속도 요구 사항이 있는 검색 엔진을 작성하려는 경우를 제외하고 대부분의 경우 Python은 프로그램 속도 요구 사항을 완벽하게 충족할 수 있습니다. 물론 이 경우 C를 사용하여 구현하는 것이 좋습니다.
PYTHON은 해석된 언어이고 소스 코드가 텍스트 형식으로 저장되므로 코드를 암호화할 수 없습니다. 그러나 프로젝트에서 소스 코드를 요구하는 경우에는 이것이 단점이라고 생각하지 않습니다. 그러면 애초에 Python을 사용하여 구현해서는 안 됩니다.
스레드가 여러 CPU를 활용할 수 없다는 문제는 Python의 가장 비판받는 단점 중 하나입니다. 전역 인터프리터 잠금(Global Interpreter Lock)은 컴퓨터 프로그래밍 언어 인터프리터가 스레드를 동기화하여 단 하나의 스레드를 만드는 데 사용하는 도구입니다. 언제든지 실행되고 있으며 Python의 스레드는 운영 체제의 기본 스레드입니다. Linux에서는 pthread이고 Windows에서는 Win 스레드입니다. 스레드 실행은 운영 체제에 의해 완전히 예약됩니다. Python 인터프리터 프로세스에는 기본 스레드와 여러 사용자 프로그램 실행 스레드가 있습니다. 멀티 코어 CPU 플랫폼에서도 GIL의 존재로 인해 멀티 스레드의 병렬 실행이 금지됩니다. 이 문제에 대한 절충 솔루션에 대해서는 나중에 스레드 및 프로세스 장에서 자세히 논의할 것입니다.
물론 Python에는 다른 작은 단점도 있는데 여기에 나열하지는 않겠습니다. 제가 말씀드리고 싶은 것은 어떤 언어도 완벽하지 않으며, 잘하는 것과 못하는 것이 있다는 것입니다. 한 언어의 단점과 다른 언어의 장점을 비교해 보세요. 언어는 단지 도구일 뿐이고, 중학교에서 기하학을 배울 때처럼 나침반이 필요할 때도 있습니다. 때로는 나침반이 필요할 때도 있습니다. 정해진 자를 사용하는 것처럼 올바른 선택은 해당 도구를 사용하여 최선을 다하는 것입니다. 많은 사람들이 이전에 나에게 Shell과 Python 중 어느 것이 더 좋은지 물었습니다. 나는 Shell이 스크립팅 언어이지만 Python은 단순한 스크립팅 언어가 아니라 더 많은 일을 할 수 있다고 대답했습니다. 그러면 Python이 할 수 있는 모든 것을 Shell이 배울 필요가 없다고 말하는 매우 영리한 사람들도 있습니다. , 당신이 충분히 좋은 한 B는 Shell을 사용하여 Tetris와 같은 게임을 작성할 수 있다고 언급했습니다. 이것을 표현할 수 있는 유일한 방법은 SB가 당신을 그와 같은 수준으로 끌어올릴 것이라고 주장하지 않는다는 것입니다. , 그런 다음 충분한 경험을 사용하여 Knock down하십시오.
위 내용은 Python 소개 및 시작 안내서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!