零章:Python的起源
Life is short,you need Python.----Bruce Eckel
一、Python的历史
1.Python的创始人:吉多·范罗苏姆(Guido Van Rossum)
2.1989年的圣诞节期间,吉多为了在阿姆斯特丹打发时间,开始开发一个新的解释程序,作为ABC语言的一种继承;
3.ABC是由吉多参加设计的一种教学语言,就吉多来看,ABC语言非常优美和强大,是专门为非专业程序员设计的,但是ABC语言并没有成功,可能是非开放造成的。基于此,吉多决心在Python中避免这一错误,并取得不错的效果。
4.关于Python名字的由来,可能是因为吉多是BBC电视剧---蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者;
5.1991年2月,第一个Python的解释器但是,它是用C语言实现的,并能够调用C语言的库文件
6.1994年1月,Python 1.0 版本正式发布。
7.2000年10月16日:Python 2.0发布,增加了实现完整垃圾回收,提供了对Unicode的支持。
8.2008年12月3日:Python 3.0 发布,但是并不兼容之前的Python2代码.
9.2011年1月,Python被TIOBE编程语言排行榜评为2010年度语言。
二、Python的特点
1.Python是完全面向对象的语言
>> 函数、模块、数字、字符串都是对象,在Python中一切皆可对象
>> 完全支持继承、重载、多重继承
>> 支持重载运算符,也支持范式设计
2. Python拥有一个强大的标准库,Python的语言核心只包含,数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能
3.Python的社区提供了大量的第三方模块,使用方法与标准库类似,他的功能涵盖 科学计算、人工智能、机器学习、Web开发、数据库接口、图形系统等多个领域。
三、Python的优点
1.简单和明确,做一件事情只用一种方法;
2.学习相对其他编程语言更容易上手;
3.开放源代码,拥有丰富的社区和生态圈;
4.解释性语言。平台可移植性高;
5.支持两种主流的编程范式(面向对象编程和函数是编程);
6.具有很高的可扩展性和可嵌入性,可调用C/C++,也可以在C/C++中调用Python;
7.代码规范程度高,可读性强,强迫症福利。
四、Python的缺点
1.代码植性效率低,速度低于C/C++等编程语言;
2.代码无法进行加密;
3.开发时可选择的框架太多,有选择的,就可能存在错误;
五、Python之禅
小彩蛋:在Python的交互环境中输入如下代码:
1 In [1]: import this
Python开发者的哲学:用一种方法,最好只用一种方法来做一件事。
六、Python的应用领域
目前Python在云基础设施、DevOps、网络爬虫开发、数据分析挖掘、机器学习等领域都有着广泛的应用,因此也产生了Web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、图像识别和处理等一系列的职位。
七、关于解释器
计算机不能直接理解任何除机器语言以外的语言,所以必须把(程序猿/程序媛)所写程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器。
编译器翻译的方式有两种:一个是编译,另一个是解释。两种方式直接的区别在于翻译的时间点不同,当编译器以解释方式运行的时候,也称之为解释器。
编译型语言:程序执行之前需要一个专门的编译过程,把程序编译为机器语言的文件,运行是不需要重新编译,直接使用编译的结果就行,程序的执行效率高,但是跨平台性差。如C/C++.
解释型语言:解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行,在发布程序时,看起来省了编译程序,但是在运行的过程中,必须先解释再进行运行,所以速度较编译型语言差些
Python的解释器:
CPython:用C语言开发的,所以叫CPython。在命令行运行Python就是启动CPython解释器
IPython:IPython是基于CPython之上的一个交互式解释器。如CPython用>>>作为提示符,而IPython用 In [序号]: 作为提示符;
PyPy:这是另一个Python解释器,它的目标是执行速度。采用JIT技术,对Python代码进行动态编译,所以可以显著提高Python代码的执行速度;
JPython:这是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节执行;
IronPython:和JPython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码