From a6afc265d33d1d3de95a4f10ea4daf13bfb1f93d Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Thu, 4 Mar 2021 19:24:24 -0500 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E4=BB=8B=E7=BB=8D=E7=9A=84=20MD=20=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/course/foundation/01_introduction.md | 53 +++++++++++++++++++++++ docs/course/foundation/02_environment.md | 1 + docs/course/foundation/03_hello_world.md | 1 + 3 files changed, 55 insertions(+) create mode 100644 docs/course/foundation/01_introduction.md create mode 100644 docs/course/foundation/02_environment.md create mode 100644 docs/course/foundation/03_hello_world.md diff --git a/docs/course/foundation/01_introduction.md b/docs/course/foundation/01_introduction.md new file mode 100644 index 0000000..8495856 --- /dev/null +++ b/docs/course/foundation/01_introduction.md @@ -0,0 +1,53 @@ +# Python 介绍 + +本页面主要对 Python 这门语言进行一些简单的介绍,有关互联网上 Python 的介绍也非常多了,读者可以自行搜索就可以了。 + +## Python的历史 +1. 1989 年圣诞节:Guido von Rossum开始写Python语言的编译器。 +2. 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,还有对列表、字典等核心数据类型,同时支持以模块为基础来构造应用程序。 +3. 1994年1月:Python 1.0正式发布。 +4. 2000年10月16日:Python 2.0发布,增加了完整的垃圾回收,提供了对 Unicode的支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。 +5. 2008年12月3日:Python 3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用 Python 2.x 版本,所以Python 3.x的很多新特性后来也被移植到Python 2.6/2.7版本中。 + +目前我们使用的Python 3.7.x 的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。 + +如果对Python的历史感兴趣,可以阅读名为自行搜索有关 Python 简史的网络文章。 + +## Python的优缺点 + +Python的优点很多,简单的可以总结为以下几点。 + +1. 简单明了,学习曲线低,比很多编程语言都容易上手。 +2. 开放源代码,拥有强大的社区和生态圈,尤其是在数据分析和机器学习领域。 +3. 解释型语言,天生具有平台可移植性,代码可以工作于不同的操作系统。 +4. 对两种主流的编程范式(面向对象编程和函数式编程)都提供了支持。 +5. 代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。 + +Python的缺点主要集中在以下几点。 + +1. 执行效率稍低,对执行效率要求高的部分可以由其他语言(如:C、C++)编写。 +2. 代码无法加密,但是现在很多公司都不销售卖软件而是销售服务,这个问题会被弱化。 +3. 在开发时可以选择的框架太多(如Web框架就有100多个),有选择的地方就有错误。 + +## 语言对比 +因为项目的需要,需要对 Python 进行一些学习,本身长期使用 Java ,所以也难免想使用 Java 来对比下。 + +因此可能会随时写写自己针对这 2 门语言的小心得。 + +### 语言类型 +Python 是解释型语言。这里需要了解一个叫做 解释型语言 的名词。 + +在计算机语言体系中,通常有解释型和编译型 2 种语言。用最常见的 Web 开发来说,后端常使用的 Java 就是编译型语言,前端多使用的 JavaScript 就是解释型语言。 + +针对开发来说,解释型语言是不需要编译器的,但是 解释型语言 需要解释器,比如在网页上写 JavaScript 的代码,你不需要编译后再执行,通常直接刷新页面就可以了。如果你对 Java 代码进行修改后,通常需要再次编译,然后再执行编译结果。 + +对比 python 和 Java 来说,Python 可以直接写了直接用就行了,和写 JavaScript 差不多。 + +### 排版布局 +Python 语言利用缩进表示语句块的开始和结束(越位规则),而非使用大括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的结束。根据PEP 8的规定,使用4个空格来表示每级缩进。 + +使用Tab字符和其它数目的空格虽然都可以被解释器识别,但不符合编码规范,偏向使用Tab字符的程序员可以设置文本编辑器将Tab键转换为4个空格。缩进成为了语法的一部分,并且Python开发者有意让违反了“缩进规则”的程序不能通过解释。 + +对比 Java 来说,Java 通常是使用 {} 大括号来表达语言结构的,因此可能在最开始使用 Python 的时候有点不适应。 + +通常使用一些比较好的 IDE 编辑器都能有效的解决这个问题。 \ No newline at end of file diff --git a/docs/course/foundation/02_environment.md b/docs/course/foundation/02_environment.md new file mode 100644 index 0000000..5611f84 --- /dev/null +++ b/docs/course/foundation/02_environment.md @@ -0,0 +1 @@ +# Python 环境配置 \ No newline at end of file diff --git a/docs/course/foundation/03_hello_world.md b/docs/course/foundation/03_hello_world.md new file mode 100644 index 0000000..53ef5df --- /dev/null +++ b/docs/course/foundation/03_hello_world.md @@ -0,0 +1 @@ +# 第一个 Hello World 程序 \ No newline at end of file From 2f259924cc0ee2fb4aeafe070f14d81453a765db Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Thu, 4 Mar 2021 19:24:53 -0500 Subject: [PATCH 2/2] =?UTF-8?q?=E5=9B=A0=E4=B8=BA=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E6=98=AF=20IJ=EF=BC=8C=E7=AC=AC=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E5=AE=8C=E6=95=B4=E6=8F=90=E4=BA=A4=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 ++++++++ .idea/codeStyles/Project.xml | 7 +++++++ .idea/codeStyles/codeStyleConfig.xml | 5 +++++ .idea/misc.xml | 6 ++++++ .idea/modules.xml | 8 ++++++++ .idea/vcs.xml | 6 ++++++ 6 files changed, 40 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..78fd294 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\WorkDir\GitHub\ossez-com\python-tutorials\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..919ce1f --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..562426d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..7b27fe6 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file