目标
一、 python的起源
二、为什么要用python
三、python的特点
四、python的优缺点
一、python的起源
1、python的创始人——吉多·范罗苏姆Guido van Rossum
2、1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为ABC语言的一种继承。
3、ABC是由吉多参加设计的一种教学语言,就吉多本人来看,ABC这门语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在python中避免这一错误,并获取了非常好的效果。
4、之所以选python(蟒蛇)作为程序名字,是因为他是BBC电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者。
5、1991年,第一个python解释器诞生,它是用C语言实现的,并能够调用C语言的文件。
总结:1989年,牛人吉多·范罗苏姆为了打发无聊时间,决定写一个新的解释程序,于是在圣诞节期间写了python的原型,写完后用了一年时间优化,然后立即开源出去,让全世界的程序员,共同努力,打造了一个如今非常强大的语言:python。
1.1解释器(科普)
计算机不能理解和执行高级语言,只能理解机器语言(即010111),所以必须要把程序员所写的程序语言转换成计算机语言(即机器码),计算机才能执行。
转换的方式有两种:
1-编译
2-解释
由此高级语言也分为编译型语言和解释型语言。
编译型语言使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
a. 一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;
b. 与特定平台(Windows/linux/mac)相关,一般无法移植到其他平台;
c. C、C++、Objective等属于编译型语言。
解释型语言使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
a. 解释型语言每次运行都需要将源代码解释成机器码并执行,效率较低;
b. 只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;
c. Python等属于解释型语言。
编译器把源代码转换成其他的更低级的代码(例如二进制码、机器码),但是不会执行它。
解释器会读取源代码,并且直接生成指令让计算机硬件执行,不会输出另外一种代码。
编译 Compile:把整个程序源代码翻译成另外一种代码,然后等待被执行,发生在运行之前,产物是「另一份代码」。
解释 Interpret:把程序源代码一行一行的读懂然后执行,发生在运行时,产物是「运行结果」。
编译型语言统一翻译,一次型执行;解释型语言翻译一行执行一行,翻译一行执行一行。前者执行快。后者跨平台能力强。
1.2 python的设计目标
1999年,吉多向DARPA提交了一条名为“Computer Programming for Everybody”的资金申请,并在后来说明了他对python的目标:
1-一门简单直观的语言并与主要竞争者一样强大
2-开源、以使任何人都可以为它做贡献
3-代码像纯英文那样容易理解
4-适用于短期开发的日常任务
这些想法中的基本都已经成为现实,python如今已经成为一门流行的编程语言。
1.3 python的设计哲学
1-优雅(工整)
2-明确(明确每句代码要做的事)
3-简单(每句代码尽量简单)
· python开发者的哲学是:用一种方法,最好是只有一种方法来做一件事。
· 如果面临多种选择,python开发者一般会拒绝花哨的语法,而选择明确没有或者很少有歧义的语法。
在python社区,吉多被称为“仁慈的独裁者”。
二、为什么要用python
· 代码量少
· ......
同一个问题,用不同语言解决,代码量差距还是很大的,一般情况下python是java的1/5,所以说人生苦短,我用python。
三、python的特点
· python是完全面对对象的语言
- 函数、模块、数字、字符串都是对象,在python中一切皆对象
- 完全支持继承、重载、多重继承
- 支持重载运算符,也支持泛型设计
· python拥有一个强大的标准库,python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。
· python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算、人工智能、机器学习、web开发、数据库接口、图形系统多个领域。
· 面向对象的思维方式
· 面向对象是一种思维方式,也是一门程序设计技术
· 要解决一个问题前,首先考虑由“谁”来做,怎么做事情是“谁”的职责,最后把事情做好就行,对象就是“谁”
· 要解决复杂的问题,就可以找多个不同的对象,各司其职,共同实现,最终完成需求。
四、python的优缺点
1、优点
- 简单、易学
- 免费、开源
- 面向对象
- 丰富的库
- 可扩展性
- ......
如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用C或C++编写,然后在python程序中使用它们。
2、缺点
- 运行速度
- 国内市场较小
- 中文资料匮乏