`
yangsq
  • 浏览: 181166 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python基本类型学习

阅读更多

由于先前的java烙印,学习python的时候会时不时的与java来个比较,我想,这也是一种好的学习方式,但有可能把两种语言揉的太紧。时刻要注意,python is not java and don't use python just as java。

来学习python的内置类型,一定要区分java的简单类型,python的内置类型也是对象(python is a pure OO language)。

数字类型

       python 支持各种常见的数字对象,如整数、浮点数等,此外还支持更加复杂的数据类型,如无限精确整数、复数。下面就与java的数字类型(在java中,简单的数字类型不是对象形式的,不过可以把他们封装成对象,在java 1.5以上,已经提供了自动的“装箱”和“拆箱”),在进行比较学习中,要注意,python的是对象,java的不是对象。

       一般整数

       python的一般整数就相当于java的int数,如12312323, -10, 0等,占4 byte,应该知道最大能达到多少了吧。在python中,没有像java那样更加细化的short(2 byte)和byte类型。

        长整数

        java的长整型占8 byte,如231893182123L(注意这个“L”不能省),pyhon中,长整形可以定义无限大,甚至占用整个内存,形式也是128912381283L这个样子,“L”不能省的。

        浮点数

        python的浮点数只有一种,就叫浮点数,如1.234, 3.14e-10, 4E210等(注意e和E,意义不同),java中浮点数分float型,4 byte,单精度;double型, 8 byte,双精度。

        其他进制(八进制和十六进制)

        python和jiava的表示方法一致,对于八进制,四个数字一组,第一个数字为0,如0123(十进制为83), 01230123(十进制为340051)。十六进制,不分组,前两位为0x,如0x1234,0xab157。

        复数

        对于这样的类型,java没有提供。python中,复数形式如3+4j,-3J等(j和J都行)。

字符类型

       java提供了字符类型char, 2byte,python中没有提供,但它提供了强大的string类型。

布尔类型

      java提供了简单的布尔类型boolean,值为true或false,python的布尔类型值可以是True或False(注意与java的大小写区别),也可以是0或1。

对于java,它的变量必须先声明在使用,而在python中,由于Anything is Object,变量只是一个指针,所以可以随意使用,不需声明,而且python是一种“弱类型”语言,如下:

python 代码
  1. >>> i = 213   
  2. >>> print i   
  3. 213   
  4. >>> i = 1231321342L   
  5. >>> print i   
  6. 1231321342   
  7. >>> i = 4E-5   
  8. >>> print i   
  9. 4e-005   
  10. >>> i = 0xab413   
  11. >>> print i   
  12. 701459   
  13. >>> i = 7 -3j   
  14. >>> print i   
  15. (7-3j)   
  16. >>> i = True  
  17. >>> print i   
  18. True  

怎么样,这里只有一个变量i,却被赋予了n中类型,实际上,i就是一个指针,它不会具有任何意义。

字符串

       java中的字符串就不说了,python的字符串也差不多,就是一旦建立,就不可变了。通过例子学吧,这些例子都是《learning Python》上的,都很classical。

python 代码
  1. >>> len('abc')   
  2. 3   
  3. >>> s = 'abc' + 'def'   
  4. >>> s   
  5. 'abcdef'   
  6. >>> 'ha'*4   
  7. 'hahahaha'   
  8. >>> for c in s:   
  9.     print c   
  10.   
  11. a   
  12. b   
  13. c   
  14. d   
  15. e   
  16. f   
  17. >>> for c in s:   
  18.     print c,   
  19.   
  20.        
  21. a b c d e f   
  22. >>> 'd' in s   
  23. True  
  24. >>> s[3]   
  25. 'd'   
  26. >>> s[-2]   
  27. 'e'   
  28. >>> s[1:4]   
  29. 'bcd'   
  30. >>> s[:-2]   
  31. 'abcd'   
  32. >>> s[2:]   
  33. 'cdef'   
  34. >>> s[2] = 'f'   
  35.   
  36. Traceback (most recent call last):   
  37.   File "<pyshell#31>", line 1, in <module>   
  38.     s[2] = 'f'   
  39. TypeError: 'strobject does not support item assignment   
  40. >>> s = s + 'g'   
  41. >>> ''' this is  
  42. a multi-line block'''  
  43. ' this is\na multi-line block'   
  44. >>> s = 'abc' 'def' 'xyz'   
  45. >>> s   
  46. 'abcdefxyz'  

 

分享到:
评论
1 楼 xun56789 2007-10-04  
学习ing

相关推荐

Global site tag (gtag.js) - Google Analytics