5
5
#### Python的历史
6
6
7
7
1 . 1989年圣诞节:Guido von Rossum开始写Python语言的编译器。
8
- 2 . 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了Java和C#实现的版本Jython和IronPython,以及PyPy、Brython、Pyston等其他实现),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,同时提供了“列表”和“字典”等核心数据类型,同时支持以模块为基础的拓展系统 。
8
+ 2 . 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了Java和C#实现的版本Jython和IronPython,以及PyPy、Brython、Pyston等其他实现),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,同时提供了“列表”和“字典”等核心数据类型,同时支持以模块为基础来构造应用程序 。
9
9
3 . 1994年1月:Python 1.0正式发布。
10
10
4 . 2000年10月16日:Python 2.0发布,增加了实现完整的[ 垃圾回收] ( https://zh.wikipedia.org/wiki/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6_(%E8%A8%88%E7%AE%97%E6%A9%9F%E7%A7%91%E5%AD%B8) ) ,提供了对[ Unicode] ( https://zh.wikipedia.org/wiki/Unicode ) 的支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。
11
11
5 . 2008年12月3日:Python 3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用Python 2.x版本,所以Python 3.x的很多新特性后来也被移植到Python 2.6/2.7版本中。
@@ -27,18 +27,18 @@ Python的优点很多,简单的可以总结为以下几点。
27
27
Python的缺点主要集中在以下几点。
28
28
29
29
1 . 执行效率稍低,因此计算密集型任务可以由C/C++编写。
30
- 2 . 代码无法加密,但是现在的公司很多都不是卖软件而是卖服务 ,这个问题会被淡化。
30
+ 2 . 代码无法加密,但是现在很多公司都不销售卖软件而是销售服务 ,这个问题会被淡化。
31
31
3 . 在开发时可以选择的框架太多(如Web框架就有100多个),有选择的地方就有错误。
32
32
33
33
#### Python的应用领域
34
34
35
- 目前Python在云基础设施 、DevOps、网络爬虫开发、数据分析挖掘、机器学习等领域都有着广泛的应用,因此也产生了Web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、图像识别和处理等一系列的职位。
35
+ 目前Python在Web应用开发、云基础设施 、DevOps、网络爬虫开发、数据分析挖掘、机器学习等领域都有着广泛的应用,因此也产生了Web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、图像识别和处理等一系列的职位。
36
36
37
37
### 搭建编程环境
38
38
39
39
#### Windows环境
40
40
41
- 可以在[Python官方网站](https://www.python.org)下载到Python的Windows安装程序(exe文件),需要注意的是如果在Windows 7环境下安装需要先安装Service Pack 1补丁包(可以通过一些工具软件自动安装系统补丁的功能来安装),安装过程建议勾选“Add Python 3.6 to PATH”(将Python 3.6添加到PATH环境变量)并选择自定义安装,在设置“Optional Features”界面最好将“pip”、“tcl/tk”、“Python test suite”等项全部勾选上。强烈建议使用自定义的安装路径并保证路径中没有中文。安装完成会看到“Setup was successful”的提示,但是在启动Python环境时可能会因为缺失一些动态链接库文件而导致Python解释器无法运行,常见的问题主要是api -ms-win-crt\*.dll缺失以及更新DirectX之后导致某些动态链接库文件缺失,前者可以参照 [《api-ms-win-crt\*.dll缺失原因分析和解决方法》]()一文讲解的方法进行处理或者直接在[微软官网](https://www.microsoft.com/zh-cn/download/details.aspx?id=48145)下载Visual C++ Redistributable for Visual Studio 2015文件进行修复,后者可以下载一个DirectX修复工具进行修复 。
41
+ 可以在[Python官方网站](https://www.python.org)下载到Python的Windows安装程序(exe文件),需要注意的是如果在Windows 7环境下安装Python 3.x,需要先安装Service Pack 1补丁包(可以通过一些工具软件自动安装系统补丁的功能来安装),安装过程建议勾选“Add Python 3.6 to PATH”(将Python 3.6添加到PATH环境变量)并选择自定义安装,在设置“Optional Features”界面最好将“pip”、“tcl/tk”、“Python test suite”等项全部勾选上。强烈建议使用自定义的安装路径并保证路径中没有中文。安装完成会看到“Setup was successful”的提示。如果稍后运行Python程序时,出现因为缺失一些动态链接库文件而导致Python解释器无法工作的问题,可以按照后面说的方法加以解决。如果系统显示api -ms-win-crt\*.dll文件缺失,可以参照 [《api-ms-win-crt\*.dll缺失原因分析和解决方法》]()一文讲解的方法进行处理或者直接在[微软官网](https://www.microsoft.com/zh-cn/download/details.aspx?id=48145)下载Visual C++ Redistributable for Visual Studio 2015文件进行修复;如果是因为更新Windows的DirectX之后导致某些动态链接库文件缺失问题,可以下载一个DirectX修复工具进行修复 。
42
42
43
43
#### Linux环境
44
44
@@ -85,20 +85,26 @@ export PATH=$PATH:/usr/local/python37/bin
85
85
source .bash_profile
86
86
```
87
87
88
- #### MacOS环境
88
+ #### macOS环境
89
89
90
- MacOS也是自带了Python 2.x版本的 ,可以通过[ Python的官方网站] ( https://www.python.org ) 提供的安装文件(pkg文件)安装3 .x的版本。默认安装完成后,可以通过在终端执行python命令来启动2.x版本的Python解释器,可以通过执行python3命令来启动3.x版本的Python解释器。
90
+ macOS也自带了Python 2.x版本 ,可以通过[ Python的官方网站] ( https://www.python.org ) 提供的安装文件(pkg文件)安装Python 3 .x的版本。默认安装完成后,可以通过在终端执行python命令来启动2.x版本的Python解释器,可以通过执行python3命令来启动3.x版本的Python解释器。
91
91
92
92
### 从终端运行Python程序
93
93
94
94
#### 确认Python的版本
95
95
96
- 在终端或命令行提示符中键入下面的命令 。
96
+ 可以Windows的命令行提示符中键入下面的命令 。
97
97
98
98
``` Shell
99
99
python --version
100
100
```
101
- 当然也可以先输入python进入交互式环境,再执行以下的代码检查Python的版本。
101
+ 或者是在Linux或macOS系统的终端中键入下面的命令。
102
+
103
+ ``` Shell
104
+ python3 --version
105
+ ```
106
+
107
+ 当然也可以先输入python或python3进入交互式环境,再执行以下的代码检查Python的版本。
102
108
103
109
``` Python
104
110
import sys
@@ -109,7 +115,7 @@ print(sys.version)
109
115
110
116
#### 编写Python源代码
111
117
112
- 可以用文本编辑工具(推荐使用Sublime、Atom、 TextMate、VSCode等高级文本编辑工具)编写Python源代码并将其命名为hello.py保存起来 ,代码内容如下所示。
118
+ 可以用文本编辑工具(推荐使用Sublime、TextMate、Visual Studio Code等高级文本编辑工具)编写Python源代码并用py作为后缀名保存该文件 ,代码内容如下所示。
113
119
114
120
``` Python
115
121
print (' hello, world!' )
@@ -123,6 +129,12 @@ print('hello, world!')
123
129
python hello.py
124
130
```
125
131
132
+ 或
133
+
134
+ ``` Shell
135
+ python3 hello.py
136
+ ```
137
+
126
138
### 代码中的注释
127
139
128
140
注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性和可维护性,当然也可以将源代码中不需要参与运行的代码段通过注释来去掉,这一点在调试程序的时候经常用到。注释在随源代码进入预处理器或编译时会被移除,不会在目标代码中保留也不会影响程序的执行结果。
@@ -156,29 +168,42 @@ IDLE是安装Python环境时自带的集成开发工具,如下图所示。但
156
168
157
169
#### IPython - 更好的交互式编程工具
158
170
159
- IPython是一种基于Python的交互式解释器。相较于原生的Python Shell ,IPython提供了更为强大的编辑和交互功能。可以通过Python的包管理工具pip安装IPython和Jupyter,具体的操作如下所示。
171
+ IPython是一种基于Python的交互式解释器。相较于原生的Python交互式环境 ,IPython提供了更为强大的编辑和交互功能。可以通过Python的包管理工具pip安装IPython和Jupyter,具体的操作如下所示。
160
172
161
173
``` Shell
162
174
pip install ipython
163
175
```
164
176
165
- 或者
177
+ 或
166
178
167
179
``` Shell
168
- python -m pip install ipython
180
+ pip3 install ipython
169
181
```
170
182
171
183
安装成功后,可以通过下面的ipython命令启动IPython,如下图所示。
172
184
173
185
![ ] ( ./res/python-ipython.png )
174
186
175
- 当然我们也可以通过安装Jupyter并运行名为notebook的程序在浏览器窗口中进行交互式代码编写操作 。
187
+ 当然,我们也可以通过安装Jupyter工具并运行名为notebook的程序在浏览器窗口中进行交互式代码编写操作 。
176
188
177
189
``` Shell
178
190
pip install jupyter
191
+ ```
192
+
193
+ 或
194
+
195
+ ``` Shell
196
+ pip3 intall jupyter
197
+ ```
198
+
199
+ 然后执行下面的命令:
200
+
201
+ ``` Shell
179
202
jupyter notebook
180
203
```
181
204
205
+
206
+
182
207
![ ] ( ./res/python-jupyter-2.png )
183
208
184
209
#### Sublime - 文本编辑神器
@@ -213,6 +238,8 @@ jupyter notebook
213
238
- Python PEP8 Autoformat - PEP8规范自动格式化插件。
214
239
- ConvertToUTF8 - 将本地编码转换为UTF-8。
215
240
241
+ > 说明:事实上Visual Studio Code可能是更好的选择,它不用花钱并提供了更为完整和强大的功能。
242
+
216
243
#### PyCharm - Python开发神器
217
244
218
245
PyCharm的安装、配置和使用在[ 《玩转PyCharm》] ( ../玩转PyCharm.md ) 进行了介绍,有兴趣的读者可以选择阅读。
@@ -221,34 +248,38 @@ PyCharm的安装、配置和使用在[《玩转PyCharm》](../玩转PyCharm.md)
221
248
222
249
### 练习
223
250
224
- 1 . 在Python交互环境中查看下面的代码结果,并将内容翻译成中文 。
251
+ 1 . 在Python交互环境中查看下面的代码结果,并试着将这些内容翻译成中文 。
225
252
226
253
``` Python
227
254
import this
228
-
229
- Beautiful is better than ugly.
230
- Explicit is better than implicit.
231
- Simple is better than complex .
232
- Complex is better than complicated.
233
- Flat is better than nested.
234
- Sparse is better than dense.
235
- Readability counts.
236
- Special cases aren' t special enough to break the rules.
237
- Although practicality beats purity.
238
- Errors should never pass silently.
239
- Unless explicitly silenced.
240
- In the face of ambiguity, refuse the temptation to guess.
241
- There should be one-- and preferably only one -- obvious way to do it.
242
- Although that way may not be obvious at first unless you' re Dutch.
243
- Now is better than never.
244
- Although never is often better than * right* now.
245
- If the implementation is hard to explain, it' s a bad idea.
246
- If the implementation is easy to explain, it may be a good idea.
247
- Namespaces are one honking great idea -- let' s do more of those!
248
255
```
249
256
257
+ > 说明:当前键入上面的命令后会在交互式环境中看到如下所示的输出,这段内容被称为“Python之禅”,里面讲述的道理不仅仅适用于Python,也适用于其他编程语言。
258
+ >
259
+ > Beautiful is better than ugly.
260
+ > Explicit is better than implicit.
261
+ > Simple is better than complex .
262
+ > Complex is better than complicated.
263
+ > Flat is better than nested.
264
+ > Sparse is better than dense.
265
+ > Readability counts.
266
+ > Special cases aren' t special enough to break the rules.
267
+ > Although practicality beats purity.
268
+ > Errors should never pass silently.
269
+ > Unless explicitly silenced.
270
+ > In the face of ambiguity, refuse the temptation to guess.
271
+ > There should be one-- and preferably only one -- obvious way to do it.
272
+ > Although that way may not be obvious at first unless you' re Dutch.
273
+ > Now is better than never.
274
+ > Although never is often better than \*right\* now.
275
+ > If the implementation is hard to explain, it' s a bad idea.
276
+ > If the implementation is easy to explain, it may be a good idea.
277
+ > Namespaces are one honking great idea -- let' s do more of those!
278
+
250
279
2 . 学习使用turtle在屏幕上绘制图形。
251
280
281
+ > 说明:turtle是Python内置的一个非常有趣的模块,特别适用于让小朋友体会什么是编程,它最早是Logo语言的一部分,Logo语言是Wally Feurzig和Seymour Papert在1966 发明的编程语言.
282
+
252
283
```Python
253
284
import turtle
254
285
0 commit comments