|
7 | 7 | }, |
8 | 8 | "source": [ |
9 | 9 | "# 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", |
12 | 11 | "Python Basic, Lesson 1, v1.0.2, 2017.02 modified by Eamon.Zhang\n", |
13 | 12 | "\n", |
14 | 13 | "### 本次内容要点\n", |
|
38 | 37 | "\n", |
39 | 38 | "与Scheme、Ruby、Perl、Tcl等动态语言一样,Python 具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python 虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如 py2exe、PyPy、PyInstaller之类的工具可以将 Python 源代码转换成可以脱离 Python 解释器运行的程序。\n", |
40 | 39 | "\n", |
41 | | - "Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。\n", |
42 | | - "\n", |
43 | 40 | "Python支持命令式程序设计、面向对象程序设计、函数式编程、面向侧面的程序设计、泛型编程多种编程范式。\n", |
44 | 41 | "\n", |
45 | 42 | "#### 创始人\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", |
47 | 51 | "\n", |
48 | 52 | "#### 版本\n", |
49 | 53 | "\n", |
|
55 | 59 | "\n", |
56 | 60 | "\n", |
57 | 61 | "\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", |
58 | 85 | "#### 设计哲学\n", |
59 | 86 | "\n", |
60 | 87 | "Python 的设计哲学是“优雅”、“明确”、“简单”。Python 开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”,也因此它和拥有明显个人风格的其他语言很不一样。在设计Python语言时,如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。这些准则被称为“Python格言”。在 Python 解释器内运行 import this可以获得完整的列表。\n", |
|
66 | 93 | "* 勤奋\n", |
67 | 94 | "* 阅读\n", |
68 | 95 | "* 实践,实践,再实践\n", |
69 | | - "* 搜索技巧" |
| 96 | + "* 搜索技巧\n", |
| 97 | + "\n", |
| 98 | + "#### 如何运行程序\n", |
| 99 | + "\n", |
| 100 | + "* 交互提示模型\n", |
| 101 | + "* 系统命令行和文件\n", |
| 102 | + "* IDE用户界面 (能编辑、运行、浏览和调试程序的用户图形界面)" |
70 | 103 | ] |
71 | 104 | }, |
72 | 105 | { |
|
164 | 197 | }, |
165 | 198 | { |
166 | 199 | "cell_type": "code", |
167 | | - "execution_count": 18, |
| 200 | + "execution_count": 2, |
168 | 201 | "metadata": { |
169 | 202 | "collapsed": false |
170 | 203 | }, |
171 | | - "outputs": [], |
| 204 | + "outputs": [ |
| 205 | + { |
| 206 | + "name": "stdout", |
| 207 | + "output_type": "stream", |
| 208 | + "text": [ |
| 209 | + "<class 'bool'>\n" |
| 210 | + ] |
| 211 | + } |
| 212 | + ], |
172 | 213 | "source": [ |
173 | 214 | "counter = 100 # 整型变量\n", |
174 | 215 | "miles = 1000.0 # 浮点型(小数)\n", |
175 | 216 | "name = \"John\" # 字符串\n", |
176 | 217 | "name2 = 'Tom'\n", |
177 | | - "bool = True # 布尔值" |
| 218 | + "bool = False # 布尔值\n", |
| 219 | + "print(type(bool))" |
178 | 220 | ] |
179 | 221 | }, |
180 | 222 | { |
181 | 223 | "cell_type": "code", |
182 | | - "execution_count": 1, |
| 224 | + "execution_count": 2, |
183 | 225 | "metadata": { |
184 | 226 | "collapsed": false |
185 | 227 | }, |
|
197 | 239 | "# 多个变量赋值\n", |
198 | 240 | "\n", |
199 | 241 | "a = b = c = 1\n", |
200 | | - "b =2 \n", |
| 242 | + "b = 2 \n", |
201 | 243 | "print(a,b,c)\n", |
202 | 244 | "\n", |
203 | 245 | "s = s1 = 'Hello'\n", |
|
206 | 248 | }, |
207 | 249 | { |
208 | 250 | "cell_type": "code", |
209 | | - "execution_count": 3, |
| 251 | + "execution_count": 4, |
210 | 252 | "metadata": { |
211 | 253 | "collapsed": false |
212 | 254 | }, |
|
228 | 270 | }, |
229 | 271 | { |
230 | 272 | "cell_type": "code", |
231 | | - "execution_count": 2, |
| 273 | + "execution_count": 3, |
232 | 274 | "metadata": { |
233 | 275 | "collapsed": false |
234 | 276 | }, |
|
244 | 286 | "source": [ |
245 | 287 | "# 交换变量\n", |
246 | 288 | "a, b = 1, 2\n", |
247 | | - "a, b = b, a \n", |
| 289 | + "a, b = b, a\n", |
248 | 290 | "print(a,b)" |
249 | 291 | ] |
250 | 292 | }, |
|
263 | 305 | "metadata": {}, |
264 | 306 | "source": [ |
265 | 307 | "#### 理解Python变量在内存中的表示\n", |
266 | | - "当我们输入 a = 'yimeng' 时,Python解释器做了2件事情:\n", |
| 308 | + "当我们输入 a = 'ABC' 时,Python解释器做了2件事情:\n", |
267 | 309 | "\n", |
268 | | - "1 在内存中创建了一个'yimeng'的字符串;\n", |
| 310 | + "1 在内存中创建了一个'ABC'的字符串;\n", |
269 | 311 | "\n", |
270 | | - "2 在内存中创建了一个名为a的变量,并把它指向'yimeng'。\n", |
| 312 | + "2 在内存中创建了一个名为a的变量,并把它指向'ABC'。\n", |
271 | 313 | "\n", |
272 | 314 | "也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据" |
273 | 315 | ] |
274 | 316 | }, |
275 | 317 | { |
276 | 318 | "cell_type": "code", |
277 | | - "execution_count": 2, |
| 319 | + "execution_count": 6, |
278 | 320 | "metadata": { |
279 | 321 | "collapsed": false |
280 | 322 | }, |
281 | | - "outputs": [], |
| 323 | + "outputs": [ |
| 324 | + { |
| 325 | + "name": "stdout", |
| 326 | + "output_type": "stream", |
| 327 | + "text": [ |
| 328 | + "ABC\n" |
| 329 | + ] |
| 330 | + } |
| 331 | + ], |
282 | 332 | "source": [ |
283 | 333 | "a = 'ABC'\n", |
284 | 334 | "b = a\n", |
285 | 335 | "a = 'XYZ'\n", |
286 | | - "#print(b)" |
| 336 | + "print(b)" |
287 | 337 | ] |
288 | 338 | }, |
289 | 339 | { |
|
329 | 379 | }, |
330 | 380 | { |
331 | 381 | "cell_type": "code", |
332 | | - "execution_count": 3, |
| 382 | + "execution_count": 1, |
333 | 383 | "metadata": { |
334 | 384 | "collapsed": false |
335 | 385 | }, |
|
338 | 388 | "name": "stdout", |
339 | 389 | "output_type": "stream", |
340 | 390 | "text": [ |
341 | | - "name:David\n", |
342 | | - "hello David\n" |
| 391 | + "sssss\n", |
| 392 | + "hello sss\n" |
343 | 393 | ] |
344 | 394 | } |
345 | 395 | ], |
346 | 396 | "source": [ |
347 | | - "name = input('name:')\n", |
| 397 | + "name = input('ss')\n", |
348 | 398 | "print( 'hello', name) " |
349 | 399 | ] |
350 | 400 | }, |
|
373 | 423 | }, |
374 | 424 | { |
375 | 425 | "cell_type": "code", |
376 | | - "execution_count": 4, |
| 426 | + "execution_count": 5, |
377 | 427 | "metadata": { |
378 | 428 | "collapsed": false |
379 | 429 | }, |
|
452 | 502 | }, |
453 | 503 | { |
454 | 504 | "cell_type": "code", |
455 | | - "execution_count": 5, |
| 505 | + "execution_count": 7, |
456 | 506 | "metadata": { |
457 | 507 | "collapsed": false |
458 | 508 | }, |
|
564 | 614 | "\n", |
565 | 615 | "\n", |
566 | 616 | "\n", |
567 | | - "Pycharm 目前最新版本是 2016.3,下载链接:https://www.jetbrains.com/pycharm/download/ " |
| 617 | + "Pycharm 目前最新版本是 2017.1.3,下载链接:https://www.jetbrains.com/pycharm/download/ " |
568 | 618 | ] |
569 | 619 | }, |
570 | 620 | { |
|
0 commit comments