Skip to content

Commit bb44385

Browse files
authored
2017.7.20 update lesson notes and add exercies
1 parent 436c47f commit bb44385

9 files changed

+1498
-372
lines changed

python_basic/python_basic_lesson_01.ipynb

Lines changed: 77 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
},
88
"source": [
99
"# Lesson 1\n",
10-
"Python Basic, Lesson 1, v1.0.1, 2016.12 by David.Yi\n",
11-
"\n",
10+
"Python Basic, Lesson 1, v1.0.1, 2016.12 by David.Yi \n",
1211
"Python Basic, Lesson 1, v1.0.2, 2017.02 modified by Eamon.Zhang\n",
1312
"\n",
1413
"### 本次内容要点\n",
@@ -38,12 +37,17 @@
3837
"\n",
3938
"与Scheme、Ruby、Perl、Tcl等动态语言一样,Python 具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python 虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如 py2exe、PyPy、PyInstaller之类的工具可以将 Python 源代码转换成可以脱离 Python 解释器运行的程序。\n",
4039
"\n",
41-
"Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。\n",
42-
"\n",
4340
"Python支持命令式程序设计、面向对象程序设计、函数式编程、面向侧面的程序设计、泛型编程多种编程范式。\n",
4441
"\n",
4542
"#### 创始人\n",
46-
"Python的创始人为吉多·范罗苏姆(Guido van Rossum)\n",
43+
"Python 的创始人为吉多·范罗苏姆(Guido van Rossum)\n",
44+
"\n",
45+
"#### Python 程序执行 \n",
46+
"程序员视角: 一个 python 程序就是一个包含 python 语句的文本文件。可以通过各种方式去执行这个文件。 \n",
47+
"Python视角:Python 解释器将源代码编译成字节码 (保存为.pyc文件),再在 python虚拟机中运行。\n",
48+
"Python的官方解释器是 CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。\n",
49+
"当我们在命令行下运行 python,就是启动 CPython 解释器。\n",
50+
"\n",
4751
"\n",
4852
"#### 版本\n",
4953
"\n",
@@ -55,6 +59,29 @@
5559
"\n",
5660
"![](imgs/python_use.jpg)\n",
5761
"\n",
62+
"#### Python 的优点和缺点\n",
63+
"优点 \n",
64+
"1. 软件质量 \n",
65+
"注重可读性,被称作“可执行的伪代码”。比一般脚本语言高很多可维护性和可重用性。 极简主义的设计思想,尽管实现一个任务可能有很多种方法,往往只有一种方法是显而易见的,明了的解决办法胜于“魔术”般的方法。\n",
66+
"\n",
67+
"2. 提高开发者的效率 \n",
68+
"代码大小只有C++、Java 的1/3-1/5,意味着可以录入、调试和维护更少的代码。 Python 是可立即执行代码,无须传统编译语言或静态语言的编译与链接步骤,意味着修改代码直接看到效果,具有快速调整能力。\n",
69+
"\n",
70+
"3. 可移植性 \n",
71+
"大多数 Python 程序不做任何改变即可在各类平台上运行。\n",
72+
"\n",
73+
"4. 标准库/第三方库的支持 \n",
74+
"有众多成熟的功能模块,包括网站开发、数值计算、游戏开发、数据库连接、Web等各个方面。\n",
75+
"\n",
76+
"5. 组件集成 \n",
77+
"轻松与其他应用程序进行通信。可以调用C/C++的库,也可以被C/C++调用,可以和Java集成。\n",
78+
"\n",
79+
"6. 简单易学,非常适合编程初学者 \n",
80+
"\n",
81+
"缺点\n",
82+
"1. 执行速度不够快(与 C/C++相比) \n",
83+
"Python 标准实现方式是将源代码的语句转换为字节码,再将字节码解释出来。但没有将代码编译为底层的二进制代码,使得速度慢。\n",
84+
"\n",
5885
"#### 设计哲学\n",
5986
"\n",
6087
"Python 的设计哲学是“优雅”、“明确”、“简单”。Python 开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”,也因此它和拥有明显个人风格的其他语言很不一样。在设计Python语言时,如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。这些准则被称为“Python格言”。在 Python 解释器内运行 import this可以获得完整的列表。\n",
@@ -66,7 +93,13 @@
6693
"* 勤奋\n",
6794
"* 阅读\n",
6895
"* 实践,实践,再实践\n",
69-
"* 搜索技巧"
96+
"* 搜索技巧\n",
97+
"\n",
98+
"#### 如何运行程序\n",
99+
"\n",
100+
"* 交互提示模型\n",
101+
"* 系统命令行和文件\n",
102+
"* IDE用户界面 (能编辑、运行、浏览和调试程序的用户图形界面)"
70103
]
71104
},
72105
{
@@ -164,22 +197,31 @@
164197
},
165198
{
166199
"cell_type": "code",
167-
"execution_count": 18,
200+
"execution_count": 2,
168201
"metadata": {
169202
"collapsed": false
170203
},
171-
"outputs": [],
204+
"outputs": [
205+
{
206+
"name": "stdout",
207+
"output_type": "stream",
208+
"text": [
209+
"<class 'bool'>\n"
210+
]
211+
}
212+
],
172213
"source": [
173214
"counter = 100 # 整型变量\n",
174215
"miles = 1000.0 # 浮点型(小数)\n",
175216
"name = \"John\" # 字符串\n",
176217
"name2 = 'Tom'\n",
177-
"bool = True # 布尔值"
218+
"bool = False # 布尔值\n",
219+
"print(type(bool))"
178220
]
179221
},
180222
{
181223
"cell_type": "code",
182-
"execution_count": 1,
224+
"execution_count": 2,
183225
"metadata": {
184226
"collapsed": false
185227
},
@@ -197,7 +239,7 @@
197239
"# 多个变量赋值\n",
198240
"\n",
199241
"a = b = c = 1\n",
200-
"b =2 \n",
242+
"b = 2 \n",
201243
"print(a,b,c)\n",
202244
"\n",
203245
"s = s1 = 'Hello'\n",
@@ -206,7 +248,7 @@
206248
},
207249
{
208250
"cell_type": "code",
209-
"execution_count": 3,
251+
"execution_count": 4,
210252
"metadata": {
211253
"collapsed": false
212254
},
@@ -228,7 +270,7 @@
228270
},
229271
{
230272
"cell_type": "code",
231-
"execution_count": 2,
273+
"execution_count": 3,
232274
"metadata": {
233275
"collapsed": false
234276
},
@@ -244,7 +286,7 @@
244286
"source": [
245287
"# 交换变量\n",
246288
"a, b = 1, 2\n",
247-
"a, b = b, a \n",
289+
"a, b = b, a\n",
248290
"print(a,b)"
249291
]
250292
},
@@ -263,27 +305,35 @@
263305
"metadata": {},
264306
"source": [
265307
"#### 理解Python变量在内存中的表示\n",
266-
"当我们输入 a = 'yimeng' 时,Python解释器做了2件事情:\n",
308+
"当我们输入 a = 'ABC' 时,Python解释器做了2件事情:\n",
267309
"\n",
268-
"1 在内存中创建了一个'yimeng'的字符串;\n",
310+
"1 在内存中创建了一个'ABC'的字符串;\n",
269311
"\n",
270-
"2 在内存中创建了一个名为a的变量,并把它指向'yimeng'。\n",
312+
"2 在内存中创建了一个名为a的变量,并把它指向'ABC'。\n",
271313
"\n",
272314
"也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据"
273315
]
274316
},
275317
{
276318
"cell_type": "code",
277-
"execution_count": 2,
319+
"execution_count": 6,
278320
"metadata": {
279321
"collapsed": false
280322
},
281-
"outputs": [],
323+
"outputs": [
324+
{
325+
"name": "stdout",
326+
"output_type": "stream",
327+
"text": [
328+
"ABC\n"
329+
]
330+
}
331+
],
282332
"source": [
283333
"a = 'ABC'\n",
284334
"b = a\n",
285335
"a = 'XYZ'\n",
286-
"#print(b)"
336+
"print(b)"
287337
]
288338
},
289339
{
@@ -329,7 +379,7 @@
329379
},
330380
{
331381
"cell_type": "code",
332-
"execution_count": 3,
382+
"execution_count": 1,
333383
"metadata": {
334384
"collapsed": false
335385
},
@@ -338,13 +388,13 @@
338388
"name": "stdout",
339389
"output_type": "stream",
340390
"text": [
341-
"name:David\n",
342-
"hello David\n"
391+
"sssss\n",
392+
"hello sss\n"
343393
]
344394
}
345395
],
346396
"source": [
347-
"name = input('name:')\n",
397+
"name = input('ss')\n",
348398
"print( 'hello', name) "
349399
]
350400
},
@@ -373,7 +423,7 @@
373423
},
374424
{
375425
"cell_type": "code",
376-
"execution_count": 4,
426+
"execution_count": 5,
377427
"metadata": {
378428
"collapsed": false
379429
},
@@ -452,7 +502,7 @@
452502
},
453503
{
454504
"cell_type": "code",
455-
"execution_count": 5,
505+
"execution_count": 7,
456506
"metadata": {
457507
"collapsed": false
458508
},
@@ -564,7 +614,7 @@
564614
"\n",
565615
"![](imgs/pycharm.png)\n",
566616
"\n",
567-
"Pycharm 目前最新版本是 2016.3,下载链接:https://www.jetbrains.com/pycharm/download/ "
617+
"Pycharm 目前最新版本是 2017.1.3,下载链接:https://www.jetbrains.com/pycharm/download/ "
568618
]
569619
},
570620
{

0 commit comments

Comments
 (0)