python的主要应用领域
- 云计算:云计算的最火的语言,典型应用OpenStack。
- web开发:众多优秀的web框架,典型地有Django,众多大型网站也是python开发,比如YouTube、豆瓣、春雨医生等。
- 科学运算:典型库Numpy、Pandas、Scipy、Matplotlib等。
- 系统运维:运维人员必备语言,Devops。
- 图像GUI:PyQt、Thinker、Wxpython。
python是什么样的语言?
编译和解释的区别
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行程序,速度很快。
解释器则是只在执行程序时,才一条一条地解释成机器语言给计算机来执行,所以运行速度不如编译后的程序运行的快。
编译型vs解释型
编译型(C、C++、GO)
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高,可以脱离语言环境独立运行。
缺点:编译之后如需修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码。不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
解释型(Python、JavaScript、PHP)
优点:有良好的的平台兼容性,在任何环境中都可以运行,前提是安装了解释器。灵活,修改代码的时候可以直接修改,可以快速部署,不需要停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
python的优缺点
优点:
- 优雅、简单、明确,python程序看上去总是简单易懂的,入门容易。
- 开发效率非常高,python有非常强大的第三方库,基本上想通过计算机实现的任何功能,python官方库都有相对应的模块进行支持。在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
- 高级语言:垃圾回收机制等。
- 可移植性:python可被抑制在许多平台上。
- 可扩展性:如果需要一段关键代码运行得更快,或者希望某些算法不公开,可以采用C或C++编写,然后在python的程序中使用。
- 可嵌入性:可以把python嵌入到C、C++程序中,向程序用户提供脚本功能。
缺点:
- 速度慢,python的运行速度相比于C语言确实慢很多。但在大多数情况下用户的无法直接感知的,必须借助测试工具才能体现出来。
- 代码不能加密,因为python是解释型语言,源码都是以名文形式存放的。
- 线程不能利用多CPU问题,这是python被人诟病最多的一个缺点。GIL(Global Interpreter Lock),全局解释器锁,是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅由一个线程在运行,python的线程是操作系统的原生线程。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程,即在多核CPU平台上,由于GIL的存在,禁止多线程的并行执行。