天天看点

《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()函数