天天看點

《Abaqus GUI程式開發指南(Python語言)》——2.4 内置對象類型

本節書摘來自異步社群《abaqus gui程式開發指南(python語言)》一書中的第2章,第2.4節,作者: 賈利勇 , 富琛陽子 , 賀高 , 周正光 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

python語言中提供了強大的對象類型作為語言的組成部分,内置對象使得程式編寫更加容易,并且内置對象往往比自己定制的資料結構更有效率。python語言中主要有如表2.1所示幾類對象類型。

《Abaqus GUI程式開發指南(Python語言)》——2.4 内置對象類型

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都是科學計數法的形式,但是有大小寫的區分。

《Abaqus GUI程式開發指南(Python語言)》——2.4 内置對象類型

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()函數