python越来越作为一种科学技术研究的语言越来越流行,可是我们经常听到一个问题,python是慢的。那么我们从后台分析一下,为什么python是慢的。

python是一种动态类型,解释型语言,它的值都是存储在分散的对象中,而不是紧密的缓存之中。

1.python是动态类型语言

这意味着编译器在程序执行之前并不知道变量定义的类型。C定义变量和Python定义变量的方式的区别:

对于C,编译器通过定义知道变量的类型;然而对于python中的变量,当你知道变量的类型的时候已经是程序执行的时候了。

我们分析一小段代码分别在python和C中执行的具体区别:

在C中,如果你写如下代码:

int a = 1;
int b = 2;
int c = a + b;

1.分配一个类型1给a

2.分配一个类型2给b

3.调用一个二进制加法

a = 1
b = 2
c = a + b

1.分配1给a

  • 设置一个对象,然后将它的类型设置为整数
  • 将它的值设为1

    2.分配2给b

  • 设置一个对象,然后将它的类型设置为整数

  • 将它的值设为2

    3.调用一个二进制加法(a,b)

  • 寻找一个类型在对象中

  • a是一个整数,它的值是a
  • 寻找一个类型在对象中
  • b是一个整数,它的值是b
  • 调用一个二进制加法
  • 返回结果,结果是一个整数

    4.产生一个对象c

  • 将一个对象的类型设置为整数

  • 将它的值分配给结果

    动态类型意味着每一步操作需要更多的步骤。python比c慢的一个基本的原因就是数字计算上面的操作。

2.python是一种解释型的语言而不是编译型的

我们可以看到解释型语言和编译型语言的区别。一个聪明的编译器知道怎么提前优化,避免重复和不必要的操作,从而提高效率。当然,在这一点上也是仁者见仁智者见智。

3.python的对象模型导致存储效率低下

python存储数据效率低下的原因,主要可以从下图看出:

当然说了python这么多缺点,为什么python用的人还这么多,因为它很简单啊。python用起来的确很简单,就我个人的使用感受而言,除了matlab,我没有看过比python还要简单的语言了。而且python的开源的库很多,所以做很多东西都很方便。

最新文章

  1. 字符加密Cipher(bzoj 1031)
  2. c/c++ qsort 函数的简单使用(1)
  3. arguments.callee 调用自身 caller,callee,apply and call
  4. 第三次作业——K米评测
  5. Eclipse 官方简体中文语言包下载地址及安装方法
  6. atitit.条形码的原理与生成总结java Barcode4j barcode o5
  7. 用php自带的filter函数验证、过滤数据 -转载
  8. Android UI目录
  9. JavaScript数据结构与算法(一) 栈的实现
  10. 利用Python进行数据分析——Numpy基础:数组和矢量计算
  11. Retrofit的初次使用
  12. Thinkphp volist 多重循环原样输出数组key值的使用总结
  13. VMware 虚拟机运行卡慢的解决办法
  14. Codeforces Round #443 (Div. 1) C. Tournament
  15. [模板] 无旋Treap (C++ class)
  16. JavaScript 简单的实现 sleep功能 .
  17. format 插入一个字符,%d,%n
  18. Oracle 触发器和序列的创建和使用 (自动增长列)
  19. Centos 7: 改变docker的image存放目录
  20. springcloud-eureka简单实现

热门文章

  1. spring mvc 绑定参数据默认值,是否必传,(RequestParam(value="id",defaultValue="1",required=true) )
  2. PHP生成静态网页的方法
  3. Mysql数据库表类型
  4. ndn挖坑记(二)
  5. python之assert
  6. Dancing Stars on Me
  7. React 进阶设计与控制权问题
  8. vue项目使用axios发送请求让ajax请求头部携带cookie
  9. 使用@Value注解对bean进行属性注入
  10. 【MM系列】SAP MM模块-委外采购订单 把Warning转换成Error信息提示