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'  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章