python(3)------The object type of python


1.總覽——Python程序可以分解爲模塊、語句、表達式和對象

  • 程序有模塊構成(模塊的概念上一章中提過)
  • 模塊包含語句
  • 語句包含表達式
  • 表達式建立並處理對象


2.Python核心數據類型



表2.1  Python內置對象類型


以上是Python內置對象基本類型,當然不完全。比如我們在編寫網絡腳本時,可以使用套接字對象,其他類型的對象往往通過導入或使用模塊建立。

我們將表2.1中所列類型爲Python核心類型。

有一點需要注意:

python中沒有類型聲明(這點有點兒像matlab),運行的表達式決定了建立對象的類型


在表2.1中有兩個特殊的類型,一個是列表[],一個是字典{},列表提供了其他對象的有序集合,而字典是通過鍵值存儲對象的(類似STL::map),列表和字典都可以實現嵌套,後面會講。



3.Python數據類型——數字

  • 一般地數學操作和matlab中沒有什麼區別:

  1.  123+222  
  2. 345  
  3. >>> 2**100  
  4. 1267650600228229401496703205376L  
  5. >>> 3.1415*2  
  6. 6.283  
  7. >>> print 3.1415*2  
  8. 6.283  

  • 這裏注意一下第二個命令2**100,結果顯示的時候最後出來的L是由於類型強制轉換爲long(長整型)
  • 除了表達式,python還可以導入一些常用的數學模塊,比如math和random:


  1. >>> import math  
  2. >>> math.pi  
  3. 3.141592653589793  
  4. >>> math.sqrt(85)  
  5. 9.219544457292887  
  6. >>>  
  7.  >>> import random  
  8. >>> random.random()#隨機生成一個數字in[0,1]  
  9. 0.13332430829199282  
  10. >>> random.choice([1,2,3,4])#在列表1,2,3,4中隨機選一個  
  11. 2  

  • 這裏呢,提醒一下大家,在Python IDLE和 Python Shell中敲math.xxx是出不來提示的,而pythonwin中會有提示,類似C++封裝好的類:


  • 除此之外,Python還包含負數、固定精度十進制數、集合等數據、、數字類型,還有第三方開源擴展領域包含矩陣和向量等類型,感興趣的朋友可以查查看。



4.Python數據類型——字符串

  • python中,字符串是一個單個字符的串序列,其他序列類型還有列表和元組。
  • 以下是python中對字符創的常見操作:



  • Python的字符串操作有個特點,你不能通過對某一位進行賦值而改變字符串,但可以通過建立一個新字符串並以同一個變量名對其賦值。因爲Python會自動清理舊的對象,如下圖所示:


  • 除此之外還有一些類型特定的方法,如replace, find方法


  • 這裏,因爲字符串具有不可變性,因此replace操作並不會改變該字符串,而是創建一個新的字符串作爲結果。



  • 這裏要提醒下,儘管序列操作是通用的,但方法不通用(字符串方法只能用於字符串操作)。
  • 對於字符串的其他方法呢,我們可以用上一章中講過的dir()函數和help( )函數:
  • dir函數給出了所有方法的名稱:




  • help函數給出了每個函數的具體definition:



  • 小技巧:python字符串有一個語法,在一對 三個單引號(or雙引號)之間的內容保持其格式。好熟悉的方法?是的!類似HTML中的<pre>標籤:


  • 模式匹配,需要引入re模塊:



  • 這裏大家請看match函數,其第一部分定義了模式,後一部分是要匹配的文本content。
  • 比如這個模式match = re.match('Hello[\t]*(.*)world','HelloPython world'),就是以Hello開頭,連上n個'\t',再接着任意字符並將其保存至匹配的group中,最後以‘world’結尾的模式在'Hello Python world'中匹配的結果。






5.Python數據類型——列表

  • python列表是一個與任意類型的對象位置相關的有序集合。列表最大的特點就是,沒有固定類型的約束:




  • 特定類型的操作:與string不同,list是可變的(相對於字符串的不可變性而言),但是有的方法是有針對性類型的,比如append函數只接受字符串:






  • 列表嵌套


  • 列表解析




6.Python數據類型——字典


  • 首先看一下字典的一般賦值方式:



  • 嵌套:



  • 鍵的排序:for循環



  • 迭代:

  • if測試:

在後面我們還會講try語句,一個捕獲並從異常中恢復的語句




7.Python數據類型——元組

元組的最大特點是不可變,換言之,元組是不可變的序列。



元組得不可變性約束決定了某些特定安全性要求下可以使用。






8.Python數據類型——文件

  • Python中的文件創建與編輯方式:



  • 此時桌面上創建了一個a.txt:




  • python默認文件打開方式爲讀'r',並可讀取文件內容如下:



  • 當然,除了open函數,python還有高級的文件類工具:pipes、fifos、sockets、keyed-access files等。例如文件描述符(descriptor file)支持文件鎖定和其他底層工具,而sockets提供網絡和進程間接口。





9.用戶自定義類

一個簡單的用戶自定義類,有相應的attribute和method:


  • 類中成員默認類型是public的(雖然python中我們還沒有介紹成員變量的類型),“self”對象時我們把這叫做面向對象模型的原因,即一個函數總有一個隱含的對象,這和C++非常相似。




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