Chinaunix首页 | 论坛 | 博客
  • 博客访问: 366826
  • 博文数量: 76
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2363
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-21 22:30
文章分类
文章存档

2014年(38)

2013年(38)

分类: 网络与安全

2014-07-23 11:28:44

最近开始学习Python,都说最好的学习方式就是比较。从今天开始,用博客来记录Python和之前学习的C++、Java语言的区别,看看这是否是一个学习新语言的好途径。

    C++的支持的基本数据类型:bool、char、wchar_t、short、int、long、long long、float、double、long double;其中 char、wchar_t、short、int、long、long long可以通过unsigned修饰符修饰

    C++中各种基本数据类型占用的存储空间,是依照机器来定的,c++中仅定义了各个数据类型占用的最小存储空间:       

    bool - 未定义最小存储空间

    char/unsigned char - 1个字节

    wchar_t/unsigned wchar_t - 2个字节

    short/unsigned short  - 2个字节

    int/unsigned int - 2个字节

    long/unsigned long - 4个字节

    float - 单精度浮点数,6位有效数字(一般是4个字节)

    double - 双精度浮点数,10位有效数字(一般是8个字节)

    long double - 扩展精度浮点数,10位有效数字(一般是12个字节)

    Java支持的基本数据类型:boolean、char、byte、short、int、long、float、double,不支持unsigned修饰符,数据类型都是带符号的

    Java中各种数据类型占用的存储空间,是规定好了的,并不因为机器的不同而不同。JAVA定义的各种数据类型支持的存储空间如下:

    boolean - 1位

    byte - 1个字节

    char - 2个字节

    short - 2个字节

    int - 4个字节

    long - 8个字节

    float - 4个字节

    double - 8个字节

    Python支持的基本数据类型:bool类型、整型、浮点型、字符串、列表、元组、集合、字典;数据类型不存在unsigned一说,都是带符号的

    Python中各种数据类型占用的存储空间,并没有任何规定,完全取决于赋值的数据;所以,和C++和Java不同,python中可以表达任意大的数值

Java和C++的对比

    JAVA和C++的一个大的区别是,java中数据类型的大小是固定的,这个是因为java是跨平台的语言,显然,如果数据类型长度都不一致,就无法实现跨平台了。另一个区别是,JAVA的数据类型没有C++丰富,既没有long long、long double这种数据类型,也不支持unsigned一说。此外,在JAVA中char类型是2个字节的,一次性解决了C++中char和wchar_t的问题


Python和JAVA/C++的对比    

    从上面的基本信息可以看出来,python和C++以及Java的区别非常大,它并没有int、long等这类定义数据类型的关键字,其次,它也没有规定各个数据类型的存储空间大小。这是因为和C++、JAVA都是静态强类型语句不同,python是一种动态强类型语言,它不是依靠在编码时通过关键字来指定变量的类型,而是通过在运行时,计算变量的取值,自动为变量选择合适的数据类型。所以,python同样有各种数据类型的概念,却没有关键字去定义。【所谓强类型语言,指的是一个变量的数据类型一旦被定义了(无论是静态类型语言的通过关键字显示定义,还是动态语言的自动匹配),那么该变量的数据类型就不能被改变,除非是有强制的类型转换发生】

    而Python中各个数据类型,并不需要定义其存储空间,也是这个原因。Python会根据变量的取值,自动为其分配存储空间,数值1和数值1000000000000000,对于python而言,都是整型数据,存储占用的空间显然不一样。

    Python和其他两种语言的不同之处还在于,Python本身提供了内置的复杂数据类型:字符串、列表、元组、集合和字典。Python中的复杂数据类型,在JAVA和C++中都有其他的方式实现,在后面的文章中会详细对比这几种数据类型的差别。
阅读(1932) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~