本節書摘來自異步社群《abaqus gui程式開發指南(python語言)》一書中的第2章,第2.4節,作者: 賈利勇 , 富琛陽子 , 賀高 , 周正光 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
python語言中提供了強大的對象類型作為語言的組成部分,内置對象使得程式編寫更加容易,并且内置對象往往比自己定制的資料結構更有效率。python語言中主要有如表2.1所示幾類對象類型。

2.4.1 數字
python語言中的數字類型包括整型、浮點型、複數型等,與一般的c、c++等語言沒有太大的差別,以下是幾類數字類型的内置對象定義方法。
【執行個體2.4】定義數字類型
注
符号>>>表示代碼在abaqus gui指令行互動視窗或者abaqus pde指令輸入視窗中輸入代碼,符号>>>不是代碼的組成部分。
2.4.2 字元串
字元串型資料一般用單引号或者雙引号包絡,并且單引号以及雙引号必須成對出現。另外,當字元串内部包含有單引号或者雙引号時,需要通過轉義符“”實作,例如:
有關轉義字元“”的使用方法讀者可以參考其他python語言的文法書,此處不再贅述。除了轉義字元之外,字元串還支援格式化的替代表達,可以用一個變量或者表達式替代字元串中的部分字元,操作符為“%”。
格式化操作符“%”的使用方法如下。
(1)在“%”操作符的左側放置一個需要進行格式化的字元串,這個字元串帶有一個或者多個嵌入的轉換目标,都以“%”開頭(例如,%、%f、%s等)。
(2)在“%”操作符的右側放置一個(或多個,多個時需要嵌入到一個元組中)對象,這些對象将會插入到左側想讓python進行格式化替代的字元串對應位置上去。
以下是格式化操作符的使用執行個體。
【執行個體2.5】格式化表達
表2.2所示的是python語言中的字元串格式化代碼,其中大部分與c語言相似,另外,表中一些格式化代碼為同一類型的格式化提供了不同的格式選擇,例如,%e、%f都可以表示浮點型資料,但是顯示格式分别為指數型和浮點型,另外雖然%e和%e都是科學計數法的形式,但是有大小寫的區分。
https://yqfile.alicdn.com/95e61f863d6aca9f427ef6c51ff7afe424cea83e.png" >
除了單引号和雙引号字元串之外,python中還有一種特殊的三重引号内的字元串常量格式,也被稱作塊字元串,這是一種對編寫多行文本資料來說很便捷的文法。這種字元串以三重引号“'''”開頭,并緊跟任意行數的文本,最後以同樣的三重引号“'''”作為結尾。
【執行個體2.6】三重引号的用法
可以看出,上述定義的字元串中包含四行,python會把三重引号内部的文本收集到一起形成一個單獨的多行字元串,并在代碼換行處嵌入了換行字元“n”。三重引号字元串在程式需要輸入多行文本的時候是很有用的,例如嵌入多行注釋資訊,另外也可以通過三重引号來廢除多行代碼,使其無效,當需要再次使用該部分代碼時,隻需要将三重引号去掉即可,這樣就避免了每行行首都需要添加“#”注釋帶來的不便。例如:
【執行個體2.7】使用三重引号注釋以及廢除代碼
另外,在使用python讀取文本時,經常需要按照一定的規則将每一行資料拆分成一系列子字元串,這種情況下通常需要使用split()函數來實作對一個長字元串的切分。
【執行個體2.8】split()分割字元串
上述情況下,字元串内部兩個非空字元間的空格數量對分割結果沒有影響,例如:
另外,當字元串中有具有分隔特征的符号時,例如逗号或者分号等,可以使用這些分隔符号對字元串進行分割。但是需要注意的是,當使用特定的分隔符進行分割時,空字元不會被忽略。
2.4.3 元組
元組型資料(tuple)由一系列元素組成,且對每個元素的資料類型不做限制,可以使用字元串、整型、浮點型的混合。元組在建立時,以小括号包括逗号(,)進行間隔,并且可以是多元資料。元組中的元素一旦确定是不允許修改的。
【執行個體2.9】元組的定義及使用
注意上述代碼中,小括号内沒有逗号,所定義的類型為字元串型。
小括号内添加逗号,所定義類型便成為元組型。
2.4.4 清單
清單型資料(list)指的是能夠存儲有序元組的資料結構,在python語言中,清單中的所有元素都包括在方括号[]内,各元素之間使用逗号分割。與元組不同的是,使用者可以對清單中的元素進行添加、删除、修改等操作,是以,清單是可操作的資料結構。
【執行個體2.10】清單的定義
與元組型資料不同的是,清單末尾加不加逗号沒有差別,清單中即使隻有一個元素也是清單型資料,例如:
【執行個體2.11】清單的操作
2.4.5 字典
字典型資料(dictionaries)是python之中最靈活的内置資料結構類型,如果把清單看作是有序的對象集合,那麼就可以把字典當成是無序的集合。兩者的主要差別在于,在字典中元素是通過鍵來存取的,而不是通過順序索引号來存取,字典中的元素沒有特定的順序,各個元素從左到右随機排列,以便快速查找,鍵提供的是字典中元素的象征性位置(非實體存儲位置)。
字典型資料用大括号{}包絡,字典中的每一組元素都包含資料鍵key和數值value兩部分,兩者之間以冒号間隔,冒号前面是鍵key,後面是數值value。key是獨一無二的,且不可改變,可以是字元串型、整型、浮點型或者元組等多種類型。字典中的兩個元素之間用逗号隔開。當需要通路字典中的某一進制素時,需要通過索引資料鍵來擷取其對應的資料值。
【執行個體2.12】字典的定義
(1)dictionaries型資料以大括号包括逗号進行間隔。
另外,也可以采用以下方式對字典進行定義。
【執行個體2.13】字典的操作
2.4.6 集合
集合(set)又分為普通set和frozenset兩類,都是無序的,都不屬于sequence類型。set類型資料是可以改變的,可以增加、删除元素。frozenset是不可變的,frozenset可以作為字典的鍵。
set中的資料都是獨一無二的,如果某一set中已經含有了某資料,則使用add()函數時,不會再增添一個。
【執行個體2.14】集合的定義
【執行個體2.15】集合的操作
2.4.7 布爾型
python的布爾類型擴充了python中真假的概念,布爾類型有true或者false兩個變量值,一般python中判斷語句的判斷結果不使用1和0來表征判斷結果的真假,而是采用布爾型的true或者false來表征。
python提供了一個内置的bool函數,它可以測試一個對象的布爾值,當一個對象為0或者空值時,測試結果為false,當對象為非零或非空時,測試結果為true。
【執行個體2.16】布爾型
2.4.8 none型
除了上述内置對象類型之外,python還有一個特殊對象:none。一般起到一個空的占位作用,類似于c語言中的null。none是一個真正的對象,并且真用記憶體空間。一般對于一個自定義函數,當不使用return指定其傳回值時,預設地會傳回none。另外,也可以通過none占用記憶體實作對可變對象的預配置設定。
【執行個體2.17】none型
2.4.9 資料格式轉換
前面講述的資料結構中,有多種資料類型是可以對其資料格式進行轉換的。下面将介紹幾種常用的資料轉換函數。
【執行個體2.18】資料格式轉換
(1)将字元串類型轉化為清單類型
(2)将字元串類型轉化為元組類型
(3)将元組轉化為清單
(4)将浮點型轉化為整型
(5)将整型轉化為浮點型
(6)将浮點型資料轉化為字元串
(7)傳回ascii碼對應的字元
(8)把字元串或者數字轉化為複數
(9)将整數轉化為十六進制數或者八進制數
(10)将字元串或者數字轉化為長整型資料
2.4.10 對象查詢與索引
讀者可以使用type()函數來查詢某對象的資料類型,也可以通過min()和max()函數查詢元組或者清單中資料的最小值或最大值。另外還可以通過index()函數查詢某個索引号對應的元素值等,下面将簡單介紹幾種常用的對象操作函數。
【執行個體2.19】對象查詢與索引
(1)type()函數
(2)min()函數和max()函數
(3)index()函數
(4)len()函數