python历史:
于1989年开发完成,1991年发布第一个版本
创始人:
Guido van Rossum(荷兰人)
python的特点:
解释性:python是一种解释性语言,计算机直接运行.py脚本,在运行的时候将每个语句翻译成为cpu能过识别的机器码。
易于学习:关键字少,不需要大量的记忆。
可移植:能够较好的将python源代码跨平台在unix,linux,windows上。
可扩展:如果希望加密某些代码,可以用c/c++/java编写,在python脚本里调用它。
可嵌入:可以在c/c++/java文件里面调用python脚本。
python的缺点:
运行速度慢:因为python是解释性语言,运行python的时候必须先将.py的每一句先解释为机器码,然后cpu才能运行。作为对比,c/c++/java这类编译型的语言,它们在运行源代码前,会将.c/.cpp文件编译成为机器码,计算机只需要运行这些机器码就可以了。因此,python除了要运行机器码,还多了一个解释的过程,运行速度慢也是没办法避免的。
无保密性:python脚本不能编译,因此对外发布的时候所有python从业者都可以读懂该脚本。而c/c++/java源代码经过编译编程机器码。一般的从业者不能读懂机器码,因此,c/c++/java开发者只需要对外发布机器码就可以了。
python的缺点这么明显,为什么又要学习python呢?
回答这个问题之前,首先要引入两个概念:数据密集型任务和I/O密集型任务
数据密集型任务:该任务频繁使用cpu进行计算,速度很快。
I/O密集型任务:该任务频繁使用硬盘,读写需要花费很长时间,或者频繁进行网络的请求,网络的等待也需要很长时间。
因此对于需要大量计算的任务,即数据密集型任务,要求cpu对程序运行速度很快,c/c++/java更合适,python是应付不过来的。
对于I/O密集型任务,cpu对于python脚本的运行速度不快,但是这些任务实际上也需要花费很长的时间,因此不要求cpu对于任务的执行速度有多快。python在完美胜任这些任务同时可以发挥python的特点。