1、python的历史
(1)1989年圣诞节:Guido von Rossum开始写Python语言的编译器。
(2)1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了Java和C#实现的版本Jython和IronPython,以及PyPy、Brython、Pyston等其他实现),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,同时提供了“列表”和“字典”等核心数据类型,同时支持以模块为基础的拓展系统。
(3)1994年1月:Python 1.0正式发布。
(4)2000年10月16日:Python 2.0发布,增加了实现完整的垃圾回收,提供了对Unicodee的支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。
(5)2008年12月3日:Python 3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用Python 2.x版本,所以Python 3.x的很多新特性后来也被移植到Python 2.6/2.7版本中。
目前我们使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(如修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以查看一篇名为《Python简史》的博文。
2、python的优缺点
● Python的优点很多,简单的可以总结为以下几点:
(1)简单和明确,做一件事只有一种方法。
(2)学习曲线低,跟其他很多语言相比,Python更容易上手。
(3)开放源代码,拥有强大的社区和生态圈。
(4)解释型语言,天生具有平台可移植性。
(5)支持两种主流的编程范式(面向对象编程和函数式编程)都提供了支持。
(6)可扩展性和可嵌入性,可以调用C/C++代码,也可以在C/C++中调用Python。
(7)代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。
● Python的缺点主要集中在以下几点。
(1)执行效率稍低,因此计算密集型任务可以由C/C++编写。
(2)代码无法加密,但是现在的公司很多都不是卖软件而是卖服务,这个问题会被淡化。
(3)在开发时可以选择的框架太多(如Web框架就有100多个),有选择的地方就有错误。
注:上述内容来源于GitHub,https://github.com/jackfrued/Python-100-Days/blob/master/Day01-15/Day01/
一个有趣的练习:
>>>import this
Beautiful is better than ugly. 美丽胜于丑陋
Explicit is better than implicit. 显式比隐式好
Simple is better than complex. 简单胜于复杂
Complex is better than complicated. 复杂总比复杂好
Flat is better than nested. 扁平比嵌套好
Sparse is better than dense. 稀疏胜于密集
Readability counts. 可读性很重要
Special cases aren't special enough to break the rules. 特例不足以打破规则
Although practicality beats purity. 虽然实用性胜过纯粹性
Errors should never pass silently. 错误永远不应该悄悄地过去
Unless explicitly silenced. 除非明确沉默
In the face of ambiguity, refuse the temptation to guess. 面对歧义,拒绝猜测的诱惑
There should be one-- and preferably only one --obvious way to do it. 应该有一种——最好只有一种——显而易见的方法来做到这一点
Although that way may not be obvious at first unless you're Dutch. 尽管一开始这种方式可能不明显,除非你是荷兰人
Now is better than never. 现在总比没有好
Although never is often better than *right* now. 虽然从来没有比现在更好
If the implementation is hard to explain, it's a bad idea. 如果实现很难解释,这是个坏主意
If the implementation is easy to explain, it may be a good idea. 如果实现很容易解释,这可能是个好主意
Namespaces are one honking great idea -- let's do more of those! 名称空间是一个非常棒的主意——让我们多做些吧!
####很显然,上述得到的是关于python的一些编程思想,翻译是搜狗翻译的,不知道准不准确,反正大概意思差不多