(1)实现同样的功能,python代码更少
(2)拥有大量Web框架,如Django、Tornado、Flask等等
(3)大量的数据分析库作支撑,如numpy、pandas、matplotlib、IPython和Jupyter、SciPy、scikit-learn、statsmodels等等
(4)它能够轻松地集成C、C++以及Fortran代码
(5)Python社区有形形色色充满激情的人(这个很重要)
(6)解决“两种语言”问题(很多组织通常都会用一种类似于领域特定的计算语言(如SAS和R)对新的想法进行研究、原型构建和测试,然后再将这些想法移植到某个更大的生产系统中去(可能是用Java、C#或C++编写的)。人们逐渐意识到,Python不仅适用于研究和原型构建,同时也适用于构建生产系统。为什么一种语言就够了,却要使用两个语言的开发环境呢?我相信越来越多的企业也会这样看,因为研究人员和工程技术人员使用同一种编程工具将会给企业带来非常显著的组织效益。)
最后一条有点多余
(1)Python是解释型语言,运行效率比编译型语言要低
由于程序员的时间通常都⽐CPU时间值钱,因此许多⼈也愿意在这里做一些权衡。但是,在那些要求延迟非常小或高资源利用率的应用中(例如高频交易系统),耗费时间使用诸如C++这样更低级、更低生产率的语言进行编程也是值得的。
(2)对于高并发、多线程的应用程序而言,Python不是一种理想的语言
这是因为Python有一个叫做全局解释器锁(Global InterpreterLock,GIL)的组件,这是一种防止解释器同时执行多条Python字节码指令的机制。虽然很多大数据处理应用程序为了能在较短的时间内完成数据集的处理工作都需要运行在计算机集群上,但是仍然有⼀些情况需要用单进程多线程系统来解决。
这并不是说Python不能执行真正的多线程并行代码。例如,Python的C插件使用原生的C或C++的多线程,可以并行并行而不被GIL影响,只要它们不频繁地与Python对象交互。