第四章 介紹Python物件型別

2021-07-31 15:02:48 字數 4105 閱讀 7891

為什麼使用內建型別

python的核心資料型別:

數字、字串、列表、字典、元祖、檔案、集合、其他型別、程式設計單元型別、與實現相關的型別。

數字

python的核心物件集合包括常規的型別:整數(沒有小數部分的數字)、浮點數(概括地講,就是後邊有小數部分的數字)以及更為少見的型別(有虛部的複數、固定精度的十進位制數、帶分子和分母的有理分數以及集合等)。

math模組包括更高階的數學工具,如函式,而random模組可以作為隨機數字的生成器和隨機選擇器。

字串

就像任意字元的集合一樣,字串是用來記錄文字資訊的。

1、序列的操作:

①、作為序列,字串支援假設其中各個元素包含位置順序的操作。

②、在python中,索引是按照從最前面的偏移量進行編碼的,也就是從0開始,第一項索引為0,第二項索引為1,依此類推。

③、在python中,我們能夠反向索引,從最後乙個開始(正向索引是從左邊開始計算,反向索引是從右邊開始計算)。

④、除了簡單地從位置進行索引,序列也支援一種所謂分片(slice)的操作,這是一種一步就能夠提取整個分片(slice)的方法。

⑤、作為乙個序列,字串也支援使用加號進行合併(將兩個字串合成為乙個新的字串),或者重複(通過再重複一次建立乙個新的字串)。

2、不可變性:

字串在python中具有不可變性——在建立後不能就地改變。

在python中的每乙個物件都可以分為不可變性或者可變性。在核心型別中,數字、字串和元組是不可變的;列表和字典不是這樣(它們可以完全自由的改變)。

3、型別特定的方法:

①、字串的find方法是乙個基本的子字串查詢的操作(它將返回乙個傳入子字串的偏移量,或者沒有找到的情況下返回-1),而字串的replace方法將會對全域性進行搜尋和替換。

②、其他的方法還能夠實現通過分隔符將字串拆分為子字串(作為一種解析的簡單形式),大小寫變換,測試字串的內容(數字、字母或其他),去掉字串後的空格字元。

③、字串還支援乙個叫作格式化的高階替換操作,可以以乙個表示式的形式(最初的)和乙個字串方法呼叫(python2.6和python3.0中新引入的)形式使用。

4、需求幫助:

①、dir函式簡單的給出了方法的名稱。

②、要查詢它們是做什麼的,你可以將其傳遞給help函式。

5、編寫字串的其他方法:

①、反斜線轉義序列表示特殊的字元。

②、python允許字串包括在單引號或雙引號中(它們代表這相同的東西)。

③、python也支援原始(raw)字串常量,即去掉反斜線轉義機制(這樣的字串常量是以字母「r」開頭的)。

6、匹配模式:

字串物件的方法能夠支援基於模式的文字處理。

列表

列表是乙個任意型別的物件的位置相關的有序集合,它沒有固定的大小。

1、序列操作:

由於列表是序列的一種,列表支援所有的我們對字串所討論過的序列操作。

2、型別特定的操作:

列表沒有固定型別的約束。

②、其他的列表方法可以在任意位置插入(insert)元素,按照值移除(remove)元素等。

③、列表sort方法,預設按照公升序對列表進行排序,而reverse對列表進行翻轉。

3、邊界檢查:

儘管列表沒有固定的大小,python仍不允許引用不存在的元素。

4、巢狀:

python核心資料型別的乙個優秀的特性就是它們支援任意的巢狀。

5、列表解析:

處理序列的操作和列表的方法中,python還包括了乙個更高階的操作,稱作列表解析表示式(list comprehension expression),從而提供了一種處理像矩陣這種結構的強大工具。

列表解析源自集合的概念。

字典

1、對映操作:

①、作為常量編寫時,字典編寫在大括號中,幷包含一系列的「鍵:值」對。

②、我們可以通過鍵對這個字典進行索引來讀取或改變鍵所關聯的值。

③、不同的建立字典的方法:開始乙個空的字典,然後每次以乙個鍵來填寫它。與列表中禁止邊界外的賦值不同,對乙個新的字典的鍵賦值會建立該鍵。

2、重訪巢狀:

3、鍵的排序:for迴圈:

①、當我們確實需要強調某種順序的時候,乙個常用的解決辦法就是通過字典的keys方法收集乙個鍵的列表,使用列表的sort方法進行排序,然後使用python的for迴圈逐個進行顯示結果。

②、在最近版本的python中,通過使用最新的sorted內建函式可以一步完成。

4、迭代和優化:

5、不存在的鍵:if測試:

元組

元組物件(tuple,發音為「toople」或「tuhple」)基本上就像乙個不可改變的列表。

1、為什麼要用元組:

元組在實際中往往並不像列表這樣常用,但是它的關鍵是不可變性。

如果在程式中以列表的形式傳遞乙個物件的集合,它可能在任何地方改變;如果使用元組的話,則不能。

檔案

檔案物件是python**對電腦上外部檔案的主要介面。

要建立乙個檔案物件,需呼叫內建的open函式以字串的形式傳遞給它乙個外部的檔名以及乙個處理模式的字串。

1、其他檔案類的工具:

open函式能夠實現在python中編寫的絕大多數檔案處理。儘管這樣,對於更高階的任務,pyton還有額外的類檔案工具:管道、先進先出佇列(fifo)、套接字、通過鍵訪問檔案、物件持久、基於描述符的檔案、關聯式資料庫和物件導向資料庫介面等。

其他核心型別

集合是唯一的不可變物件的無序集合。

十進位制數(固定精度浮點數)和分數(有乙個分子和乙個分母的有理數)。

布林值(預定義的true和false物件實際上是定製後以邏輯結果顯示的整數1和0)。

特殊的佔位符物件none(它通常用來初始化名字和物件)。

1、如何破話**的靈活性:

內建函式type返回的型別物件是賦給該型別的另乙個物件的乙個物件。

使用者定義的類

用抽象的術語來說,類定義了新的物件型別,擴充套件了核心型別。

剩餘的內容

只有我們目前所見到的那些物件型別才被認為是python核心型別集合的一部分。其他python中的型別有的是與程式執行相關的物件(如函式、模組、類和編譯過的**);有的是由匯入的模組函式實現的,而不是語言語法。

本章小結

本章介紹了python核心物件型別,以及可以對它們進行的一些操作。我們學習了一些能夠用於許多物件型別的一般操作(例如,索引和分片這樣的序列操作),以及可以作為方法呼叫的特定型別操作(例如,字串分隔和列表增加)。

第四章 python物件

4.1 python 物件 所有的python 對像都擁有三個特性 身份,型別和值。身份 每乙個物件都有乙個唯一的身份標識自己,任何物件的身份可以使用內建函式id 來得到。這個值可以被認為是該物件的記憶體位址。您極少會用到這個值,也不用太關心它究竟是什麼。型別物件的型別決定了該物件可以儲存什麼型別的...

第四章 物件

三個特性 身份 型別 值 每個物件都有唯一的身份來標識自己,使用內建函式id 得到。例子 usr bin env python coding utf 8 a 32 print a b a print id a id b 結果 d python27 python.exe e workp python ...

第四章 復合型別

第一題 按示例請求顯示資訊。第二題 修改程式4.4,使用c string類 include include using namespace std int main 第三題 使用char陣列,和cstring中的函式,按示例格式顯示輸出 include include using namespace...