Python实现Web UI自动化测试实战:Selenium 3/4+unittest/Pytest+GitLab+Jenkins
上QQ阅读APP看书,第一时间看更新

3.1 Python基本数据类型

Python程序共包含6种基本数据类型,分别是数值(number)、字符串(string)、列表(list)、元组(tuple)、字典(dictionary)、集合(set)。要想编写能实现各种功能的程序,我们首先要知道如何使用这些基本的数据类型。

3.1.1 数值

我们可以简单地将数值认为是数学中的数字。在Python 3中,数值类型又可以细分为以下3种。

●int:带符号整数,例如3、101、−5。

●float:浮点数,可以理解为实数,例如5.5、9.0。

●complex:复数。

接下来,我们通过命令行来看一些数值运算。

>>> 3+4                # 加法
7
>>> 66-1               # 减法
65
>>> 3*8                # 乘法
24
>>> 6/2                # 除法
3.0
>>> 19%5               # 求余
4
>>> 19//3              # 取模
6
>>> 5**2               # 平方
25

除此之外,Python还有一个math模块,支持复杂的数学运算,我们来看几个简单的示例。

>> import math        # 需要导入math模块
>>> abs(-3)            # 求绝对值
3
>>> math.ceil(4.3)     # 向上取整
5
>>> math.floor(4.3)    # 向下取整
4
>>> max(1,2,3)                    # 取最大数
3
>>> min(1,2,3)                    # 取最小数
1
>>> pow(2,3)                      # 求幂
8
>>> math.sqrt(9)                  # 求平方根
3.0
>>>

至此,我们已经掌握了数值数据类型的基本用法。

3.1.2 字符串

字符串是个比较特殊的数据类型。除了常见的“Storm”“中国”以外,被双引号或单引号(英文状态下)引起来的数据都是字符串,例如"1""['a']"等。接下来,我们通过代码来看一下字符串常见的操作。

>>> 'Storm'.upper()               # 将字母转换成大写字母
'STORM'
>>> 'Storm'.lower()               # 将字母转换成小写字母
'storm'
>>> 'Hi storm'.title()            # 将每个单词的首字母转换成大写字母
'Hi Storm'
>>> 'Hi storm'.swapcase()         # 将字母大小写反转
'hI STORM'
>>> '123'.isdigit()               # 判断字符串是否全为数字
True
>>> 'storm'.isalpha()             # 判断字符串是不是全是字母
True
>>> 'hello storm'.count('o')      # 返回括号中的字符在字符串中出现的次数
2
>>> 'Hi Storm'.startswith('Hi')   # 判断前面的字符串是不是以括号中的字符串开头,返回布尔值
True
>>> 'Hi Storm'.endswith('rm')     # 判断前面的字符串是不是以括号中的字符串结尾,返回布尔值
True
>>> 'Hi' in 'Hi Storm' # 判断前面的字符串是不是包含在后面的字符串中,区分大小写,返回布尔值
True
>>> 'Hi Storm'.replace('Hi', 'Hello')    # 把字符串中的“Hi”替换为“Hello”
'Hello Storm'
>>> 'Hi,Storm,Hello'.split(',')   # 以括号中的字符来切分前面的字符串,返回一个列表
['Hi', 'Storm', 'Hello']
>>> ' Hi Storm '.strip()          # 去除字符串前后的空格,中间的空格不去除
'Hi Storm'
>>> 'Hi' + 'Storm'                # 通过加号连接字符串
'HiStorm'
>>> 'Storm'*3                     # 通过乘法生成重复字符串
'StormStormStorm'

3.1.3 列表

列表是一种非常重要和常见的数据类型。它是一种“有序的集合”,我们可以对其进行增、删、改、查等操作。下面通过代码来学习列表的常见用法。

(1)定义列表

我们可以通过以下方式定义列表。

>>> hero = ['storm','sk','shadow']       # 直接用中括号来定义列表
>>> hero                                 # 输出列表
['storm', 'sk', 'shadow']
>>> mylist = list('storm')               # 通过list将字符串转换成列表
>>> mylist                               # 输出列表
['s', 't', 'o', 'r', 'm']
>>>

(2)查询列表元素

我们可以通过以下方式查询列表中的元素。

>> mylist = list('storm')
>>> mylist           # 输出列表
['s', 't', 'o', 'r', 'm']
>>> mylist[0]        # 通过下标获取列表元素,注意,下标从0开始
's'
>>> mylist[0:2]      # 切片,包括下标为0的元素,不包括下标为2的元素
['s', 't']
>>> mylist[2:]       # 切片,从下标为2的元素开始,一直到最后
['o', 'r', 'm']
>>> mylist[:-1]      # 切片,从下标为0的元素开始,不包括倒数第一个元素
['s', 't', 'o', 'r']

(3)增加元素

我们可以通过以下方式为列表增加元素。

>>> mylist                     # 原始列表
['s', 't', 'o', 'r', 'm'] 
>>> mylist.append('abc')       # 通过append往列表的最后面追加一个元素
>>> mylist
['s', 't', 'o', 'r', 'm', 'abc']
>>> mylist.insert(0, 'hello')  # 通过insert在指定下标的元素前面插入一个元素
>>> mylist
['hello', 's', 't', 'o', 'r', 'm', 'abc']

(4)删除元素

我们可以通过以下方式删除列表中的元素。

>>> mylist.pop()               # 通过pop将列表的最后一个元素“弹”出来
'abc'
>>> mylist
['hello', 's', 't', 'o', 'r', 'm']
>>> mylist.remove('hello')       # 通过remove删除指定的元素
>>> mylist
['s', 't', 'o', 'r', 'm']
>>> del(mylist[0])               # 通过del关键字删除指定下标的元素
>>> mylist
['t', 'o', 'r', 'm']

(5)修改元素

另外,我们还可以修改列表中的元素,例如修改指定下标的元素、反转列表元素等,请见示例代码。

>>> mylist                       # 原始列表
['s', 't', 'r', 'o', 'm']
>>> mylist[0] = 'S'              # 修改指定下标的元素
>>> mylist
['S', 't', 'r', 'o', 'm']
>>> mylist.reverse()             # 反转列表元素
>>> mylist
['m', 'o', 'r', 't', 'S']
>>> mylist.sort()                # 按ASCII值排序,大写字符小于小写字符
>>> mylist
['S', 'm', 'o', 'r', 't']

(6)特殊操作

再来看几个列表的特殊操作。

>>> mylist                       # 原始列表
['s', 't', 'r', 'o', 'm']
>>> len(mylist)                  # 通过len 获取列表长度
5
>>> max(mylist)                  # 通过max获取列表中最大的元素
't'
>>> min(mylist)                  # 通过min获取列表中最小的元素
'm'
>>> mylist.count('s')            # 通过count统计括号中字符在列表中出现的次数
1

3.1.4 元组

元组也是一个有序的集合。它和列表最大的区别在于一旦初始化就不能修改。上一小节中我们所学列表的多数操作方法,同样适用于元组的操作,这里不再赘述。我们着重来介绍一下不同点。

>>> mytup = ('a', 'b' , 'c')     #通过小括号定义元组
>>> mytup
('a', 'b', 'c')
>>> mytup[0]='aaa'               #尝试修改元素,报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> mytup2 = ('a')         #如果想定义包含一个元素的元组,需要加个逗号,否则会变成字符串
>>> type(mytup2)           #通过type可以查看元素类型
<class 'str'>
>>> mytup3 = ('a',)        #如果想定义包含一个元素的元组,需要加个逗号
>>> type(mytup3)
<class 'tuple'>

3.1.5 字典

字典使用键-值对(key-value)存储。和列表相比,字典查找元素的速度更快,但字典的读取占用较多内存。下面通过代码来学习一下字典的增、删、改、查等操作。

(1)定义字典

我们来看一下在Python中如何定义字典。

>>> mydict = {}            # 用大括号定义字典
>>> mydict
{}
>>> mydict1 = {'name':'storm', 'age':35}#一个键-值对是字典中的一个元素,键和值用冒号分隔
>>> mydict1
{'name': 'storm', 'age': 35}
>>> type(mydict1)          #通过type查看元素类型
<class 'dict'>

(2)查看字典元素

接下来,我们看一下在Python中如何查看字典中的键和值。

>>> mydict1                # 字典
{'name': 'storm', 'age': 35}
>>> mydict1.keys()         #通过keys获取字典中的键
dict_keys(['name', 'age'])
>>> mydict1.values()       #通过values获取字典中的值
dict_values(['storm', 35])
>>> mydict1['name']        # 通过键获取值
'storm'

(3)增加字典元素

我们再来看一下在Python中如何给字典增加元素。

>>> mydict1                # 原始字典
{'name': 'storm', 'age': 35}
>>> mydict1['hero'] = 'Storm' #增加一个键,并赋一个值
>>> mydict1                #再次输出字典元素
{'name': 'storm', 'age': 35, 'hero': 'Storm'}

(4)删除字典元素

接下来,学习在Python中如何删除字典中的元素。

>>> mydict1
{'name': 'storm', 'age': 35, 'hero': 'Storm'}
>>> del mydict1['age']      # 通过del 删除指定的元素
>>> mydict1
{'name': 'storm', 'hero': 'Storm'}

(5)修改字典元素

再来学习如何修改字典中的元素。

>>> mydict2
{'name': 'storm', 'age': 35, 'hero': 'Storm'}
>>> mydict2['name'] = 'sk'      # 直接赋值,修改
>>> mydict2
{'name': 'sk', 'age': 35, 'hero': 'Storm'}

3.1.6 集合

集合和字典类似,也是一组键的集合,但是不存储值。注意,集合中的键不能重复。要创建一个集合,需要提供一个列表作为输入集合。下面通过代码来简单了解一下。

>>> myset = set([1,2,3])   # 传入列表,创建集合
>>> myset
{1, 2, 3}
>>> myset.add(4)           # 通过add添加集合元素
>>> myset
{1, 2, 3, 4}
>>> myset.remove(2)        # 通过remove删除集合元素
>>> myset
{1, 3, 4}