Python自学笔记day_01
2020-07-14 06:26
267 查看
一、Python历史发展与应用
Python的创始人是吉多·范罗苏姆。1989年雏形初现,1991年正式发布。
历史发展
几个重要的时间点如下:
- 2004.11.30发布WEB框架Django
- 2008.10.1 发布Python2.6
- 2008.12.3 发布Python3.0,Python3.x和Python2.x是有源码区别的
- 2010.7.3 发布Python2.7,官方宣布此版本至2020年不再更新,但因为开源的关系,其实有些厂还是在更新此版本的
应用
五个主要的应用:
- Web开发
- 网络爬虫
- 人工智能
- 数据分析
- 自动化运维
二、Python的编程语言分类
编译型:C、Java、C++
解释型:Python、Javascript
三、Python的种类
- Cpython:官方推荐解释器,可以转化成C语言能识别的字节码(使用率最高)
- Jpython:可以转化成java语言能识别的字节码
- Ipython:基于Cpython之上的一个交互式解释器,它只是比Cpython在交互式上有所增强,但是执行代码的功能和Cpython是完全一样的。
- IronPython:可以转化成.net语言能识别的字节码
- pypy:动态编译。把Python从解释型语言变成了编译型语言,这样Python既执行效率高,又开发效率高,但是这个好像还没推广,可能是还不完善,这块需要后面再做了解。
四、Python的优缺点
优点
- 崇尚简单、清晰、优美,所以对入这行的小白来说,是比较友好的
- 开发效率很高,Python拥有强大的第三方库的支持,基本上你能想到的功能,官方都给你写好了相应的模块支持你实现,直接下载调用即可,这样能大大降低开发周期。(如果后期学的好的话,有自己的想法,能给Python库添加一个新的功能,那就牛逼了!!!)
- 一个不算特别的优点,它是一门高级语言,你无需考虑如何管理你的程序使用内存的一类底层细节。
- 可移植性比较好,这点和java类似。
- 扩展性比较好,我个人的理解是和其他语言的对接,比如我可能有一段代码比较核心,不希望让别人轻易知道,那我可能就把这段代码用C或者C++去实现了,然后放到Python程序中去使用他们。
- 相反,我也可以把Python程序嵌入到C或C++程序中,为我的程序提供一些脚本支持。(目前只知道这些,应该还有其他应用方式,后续学到了再补充)
缺点
- 因为是解释型语言,需要读一行解释一行成二进制,所以执行效率低
- 同样还是因为是解释型语言,它的源码无法加密,不过这个我个人认为不是一个什么缺点,只能算是一个特点。除了本着代码共享的精神外,我认为要是真不想公开源码,从一开始你的项目就不会用Python写了。
- 这个应该是Python最为人诟病的一个缺点,它不能并发多线程。由于GIL(Global Interpreter Lock)全局解释器锁的存在,使得任何时刻只能有一个线程在执行,而Python的线程操作用的是操作系统的原生线程。在Linux上为pthread,在Windows上是Win thread,完全是由操作系统调度线程的执行。(关于pthread和win thread还不是很了解,后续了解之后做一个链接过来,丰富知识面。另外关于此缺陷,我相信有很多Python的追逐者已经有了相应的解决方法,这块需要后面再找资源研究)
相关文章推荐
- Python自学笔记day_02
- Shell自学笔记day_01
- 学习笔记(01):Python数据清洗实战-Numpy常用数据结构
- Python 3 自学笔记 1 (part 1 :基本语法知识)
- Python自学笔记 - 5.list和tuple
- 学习笔记(01):5天Python闯关训练营-104期-项目实战:CSDN博客加入阿里反爬机制的解决策略...
- 《Python 黑帽子》学习笔记 - netcat 介绍2- Day 6
- python自学笔记(5)--python函数基础
- OpenCV自学笔记1:Pycharm + OpenCV3 + Python3 配置记录
- 学习笔记(01):零基础搞定Python数据分析与挖掘-列表元组与字典的介绍(一)
- python 自动化之路 day 01 人生若只如初见
- Java基础笔记:Day_01 Hello World
- 学习笔记(01):Python数据可视化教程:基于Plotly的动态可视化绘图-第一个plotly 图可视化...
- Linux自学笔记:01_Linux基础介绍
- python_自学01
- python自学笔记(一)
- 学习笔记(01):Python全栈工程师之Web开发教程-Python全栈工程师之Web开发体验-1
- 学习笔记(01):Python数据清洗实战-Pandas常用数据结构series和方法
- 学习笔记(01):第一章 Python语言家族-简单的内置数据类型组成Python世界 3
- Python自学笔记5