说明
本专栏主要是博主自己学习Python中总结的学习笔记,适合非科班但是也想上手处理一些数据或者想入门的同学们。主要参考书籍为Mark Lutz的 Python学习手册(第4版)以及网上整理的一些零碎的知识点,欢迎指出问题和讨论。
1. Why Python
近年来,大家都感觉到了AI的火爆,从而Python也走进了大众的视野,哪怕你完全不懂程序,你也可能从各大媒体和公众号甚至周围人听到Python。不过Python的流行有它特定的原因,这么多人选择它跟它的特性有关:
1). 好的可读性和软件质量. 不是有句话说,Python就是可以执行的伪代码。Python的设计是的其代码易于理解和维护。
2). 高的开发效率. 相比C和C++这类编译/静态语言,Python可以立即执行,提高效率。
3). 好的可移植性. 大部分Python程序不需要修改就可以在各大计算机平台运行。
4). 强大的社区. 大量的源源不断的开源贡献使得Python的使用非常,很多函数功能都被封装在了各种package里面。
5). 简单好上手. 最重要的理由,有木有? 科班和立志于开发的同学们需要学习更多C++,JAVA,而普通的同学们需要处理数据什么的,Python就够了,有木有.
当然,要说缺点,就是慢咯。如果有很大的计算量或者需要做较大的开发,还是需要使用其他语言的。
2.Python程序运行机制
首先,我们得知道,Python代码必须在解释器种运行。关于解释器,可以理解为是一种让其他程序运行起来的程序。简单的来说,Python程序运行有两步:
1). Python解释器将我们的源代码编译成字节码的形式,因为字节码可以提高执行速度。
2). Python虚拟机(Python Virtual Machine)接收字节码,并执行。
解释器过程
解释器的过程是对用户隐藏的,如果Python进程有写入权限,它将把程序的字节码保存为一个以.pyc为扩展名的文件,".pyc"就是编译过的".py"的源代码。保存为".pyc"的好处就是可以作为一种启动优化,如果有保存的.pyc文件,程序执行将跳过编译这一步,这对大型程序很重要。
如果Python无法在机器上写入字节码,字节码将在内存中生成并在程序结束后被丢弃。
我们可以通过Python dis模块中的dis函数看一下字节码:
import dis
string = "Hello, Python"
dis.dis(string)
###运行结果如下:
1 0 LOAD_NAME 0 (Hello)
2 LOAD_NAME 1 (Python)
4 BUILD_TUPLE 2
6 RETURN_VALUE
dis.dis()函数是拆卸bytesource对象达到分析的目的,bytesource对象可以是模块、类、函数等。详细介绍可以参见Python Document dis模块.
虚拟机过程
PVM并不是一个独立的程序,它是一个迭代运行字节码指令的大循环,一步步完成字节码中的操作。
对Python最简单的介绍就先到这里了~~