Python從白雞到大佬之旅(2)
本博文為系列性博文,如果是像我一樣的小白起步的話,強烈建議從0看起
Python物件型別及其運算 Python程式中儲存的所有資料都是圍繞物件這個概念展開的 程式中儲存的所有資料都是物件 每個物件都有一個身份,一個型別和一個值 例如,school="MoGe Linux"會以“MoGe Linux”建立一個字元物件,其身份是指向它在記憶體中所處位置的指標(其在記憶體中的地址),而school就是引用這個具體位置的名稱 物件的型別也就是物件的類別,用於描述物件的內部表示及它支援的方法和操作 建立特定型別的物件時,有時也將該物件稱為該型別的例項 例項被建立後,其省份和型別就不可改變 如果物件值是可修改的,則稱為可變物件 如果物件值是不可修改的,則稱為不可變物件 如果某個物件包含對其它物件的引用,則將其稱為容器; 大多數物件都擁有大量特有的資料屬性和方法 屬性:與物件相關和值 方法:被呼叫時將在物件上執行某些操作的函式 使用點(.)運算子可以訪問屬性和方法 Python內建函式id()可返回一個物件的身份,即該物件在記憶體中的位置 is運算子用於比較兩個物件的身份 type()用於返回一個物件的型別 物件型別本身也是一個物件,稱為物件的類 該物件的定義是唯一的,且對於某型別的所有例項都是相同的 所有型別物件都是一個指定的名稱,可用於執行型別檢查,如list,dict if a is b: statements if a == b statements if type(a) is type(b): statements Python核心資料型別及型別顯示轉換 核心資料型別: 數字:int,long,float,complex,bool 字元: str,unicode 列表:list 字典:dict 元組:tuple 檔案:file 其它型別:集合(set),frozenset,類型別,None 其它檔案類工具:pipes,fifos,sockets 型別轉換: str(),repr()或format(),將非字元型資料轉換為字元; int():轉為整數 float(): list(s):將字串s轉為列表 tuple(s):將字串s轉為元組 set(s):將字串s轉為集合 frozenset(s):將字典s轉換為不可變集合 dict(d);建立字典 其中d必須是(key,value)的元組序列; chr(x):將整數轉為字元 ord(x):將字元轉換為整數值 hex(x):將整數轉換為16進位制字串 bin(x): oct(x): 數字型別: Python的數字字面量:布林型,整數,浮點數,複數; True: 1 False: 0 序列表示索引為非負整數的有序物件集合,包括字串,列表和元組 字串是字元的 列表和元組是任意python物件的序列 字元和元組屬於不可變序列,而列表則支援插入,刪除和替換元素 所有序列都支援迭代 序列型別: 字元型別: 字串字面量:把文字放入單引號,雙引號或三引號中; 如果要使用unicode編碼,則在字元之前使用字元u進行標識,如u"magedu" 文件字串,模組,類或函式的第一條語句是一個字元的話,該字串就成為文件字串,可以使用_doc_屬性引用; 運算子 s[i]:索引運算子 s[i:j]為切片運算子,s[i:j:stride]為擴充套件切片運算子 min(s)和max(s)只適用於能夠對元素排序的序列 sum(s)只使用於陣列序列 支援運算: 索引,切片,min(),len()等 支援操作: 物件的自有的方法; 列表: 容器型別: 任意物件的有序集合,通過索引訪問其中的元素,可變物件, 異構,任意巢狀 支援在原處修改; 修改指定的索引元素,修改指定的分片,刪除語句,內建方法 11 + 12:合併兩個列表,返回一個新的列表,不會修改源列表 11 + N:把11重複N次,返回一個新列表; in:成員關係判斷字元 用法: item in container not in :obj not in container 列表解析:[] 列表複製方式: l1 - [1,2,3,4] 12 = l1 import copy l2 = copy.deepcopy(l1) l2 = l1[:] 元組: 表示式符號:() 容器型別 任意物件的有序集合,通過索引訪問其中的元素,不可變物件,長度固定 異構,任意巢狀 常見操作: () (1,) (1,2) t1 + t2: t1 + N: in: not in: 雖然元組本省不可變,但如果元組內嵌套了可變型別的元素,那麼此類元素的修改不會返回新元組 字典:dict 字典在其它程式語言中又稱作關聯陣列或散列表; 通過鍵實現元素存取;無序集合;可變型別容器,長度可變,異構,巢狀; {key1:value1,key2:value2,...} {}:空字典 {'x':32,'y':{1,2,3}} 字典複製:d2 = d1.copy() d1.iteritems:返回一個迭代器物件