教育的真谛就是当你忘记一切所学的东西之后所剩下的东西
1.1 什么是Python
Python是一门优雅而健壮的通用型编程语言,它功能强大,简单易学。Python接近自然语言,读Python的代码就像读英文文档一样易于理解。
1.2 起源
大家好,我是平头哥。在今后的一段时间里,我会跟大家一起学习python。这次主要的参考书目为《Python核心编程》。书中提到的代码我会全部用最新的Python 3.7.2重写,代码我会同步更新到github,大家有什么问题可以跟我留言。再次感谢大家的支持,闲言少叙,咱们现在进入正题。
python之父是 Guido van Rossum(吉多·范罗苏姆),Guido van Rossum在荷兰出生、成长,1982年在阿姆斯特丹大学获得数学和计算机科学硕士学位。后来Guido van Rossum在荷兰阿姆斯特丹的国家数学和计算机科学研究学会(CWI)工作。曾参与开发解释型编程语言ABC,因不满足ABC语言的开发能力,于1989年底创造Python,于1991年初发布了第一个Python发行版。
1.3 特点
1.3.1 高级
Python具有高级的数据结构,例如内置的列表(大小可变数组)和字典(哈希表)。
1.3.2 面向对象
Python支持面向过程编程,面向对象编程,函数式编程。
1.3.3 可升级
Python提供了基本的开发模块,你可以在它上面开发你的软件,而当这些需要拓展和增长时,Python的可插入性和模块化架构能使你的项目生机盎然和易于管理。
1.3.4 可拓展
Python支持使用C、C++、Java、C#、Golang等语言为其写拓展模块,已达到性能等显著提升。
1.3.5 可移植
我们通常所说的Python是指的CPython,是由C语言编写而出。C语言有较强的可移植性,使得Python可以运行在任何带有ANSI C编译器的平台上。尽管有一些针对不同平台开发的特定模块,但是在任何一个平台上用Python开发的通用软件都可以稍适修改或原封不动地在其他平台上运行。这种可移植性即适用于不同都架构,也适用于不同的操作系统。
1.3.6 易学
Python关键字少、结构简单、语法清晰。小学生都能学会。
1.3.7 易读
Python接近自然语言,读Python的代码就像读英文文档一样易于理解。
1.3.8 易于维护
Python本身就易于学习于阅读,它的维护成本也相对较低。
健壮性
一旦你的Python程序由于错误崩溃,Python解释器就会转向一个堆栈跟踪,那里面有可用到的全部信息,包括你程序崩溃的原因,以及是哪段代码出错了。这些错误被称为异常。如果在运行时发生这样的错误,Python使你能够监控这些错误并进行处理。
针对异常可以采取相应的措施,例如解决问题、重定向程序、执行清除或维护步骤、正常关闭应用程序,亦或干脆忽略掉。无论如何,这些都可以有效地缩减开发周期中都调试环节。
1.3.10 高效的快速原型开发工具
Python有许多面向其他系统的接口,它的功能强大,所以完全可以用Python开发整个系统的原型。实际上在工作中我也是这么干的,一般是先用Python快速实现产品原型,后续用编译型语言(C、C++、Go等)进行优化。传统的编译型语言也能实现同样的系统建模,但是Python工程方面的简洁性可以让我们在最短的时间内游刃有余的完成相同的工作。Python库多,无论你打算开发什么样的应用都能找到相应的模块和包帮你实现。
1.3.11 内存管理器
C和C++最大的弊病在于内存管理由开发者负责(当然从另外一个角度来看这也是C和C++的优点),所以哪怕是一个很少访问、修改和管理内存的应用程序,程序员也必修在执行了基本任务之外履行这些职责。这些加在开发者身上的没有必要的负担和职责常常会分散经历。
在Python中,由于内存管理是由Python解释器负责的,所以开发人员就可以从内存事务中解放出来,全神贯注于最直接的目标。这会使错误更少、程序更健壮、开发周期更短。
1.3.12 解释性和(字节)编译性
Python是一种解释型语言,这意味着开发过程中没有编译这个环节。一般来说,由于不是以本地机器码运行,纯粹的解释型语言比编译型语言运行得慢。然而,类似于Java,Python实际上是字节编译的,其结果就是可以生成一种接近机器码语言的中间形式。这不仅改善了Python的性能,还同时使它保持了解释型语言的优点。