python自动化测试笔记3-python基础(数组及其用法,多维数组(即数组中的某些元素还是数组)、字典及其用法、多维字典)

python自动化测试笔记3-python基础

说实话,今天有点累。这篇博客不知道啥时候能写完,想想就很难过。今天主要学习的内容是python当中的list(数组)、dict(字典)和str(字符串)及其方法。
list(数组),就是一个一个的字符串放在一起的,方便查找。每一个字符串称为列表的元素。有前后顺序,从左到右依次编号,编号都是python默认的,我们看不见,也改不了,一般称其为下标或索引。第一个是0,第二个是1,第三个是2,依次。。。。用起来就是把一类东西都放在一起,然后在变量那里存着。list中的元素从右往左也有个默认编号,最右边的是-1,然后是-2,-3。。。
如:存一个班级学生的名字

 stu_name=['刘畅','高翔','郭欣','高加贺','张苗']
 #文中关于语法规则的都叫写法,关于list、字符串或者数组的用法的都叫方法,不是这些用法的叫函数
 #创建空list的两种写法。
  stus=[]
  stus=list()

取列表中的元素 。或者说查询列表中的元素都是通过下标进行。stu_name[1]的打印结果就是刘畅。
修改、删除、插入列表中的元素都是list的方法实现的。后续可以研究下这些方法的源代码是啥。
插入字符串

stu_name.append('liuchang')#在list末尾增加一个元素
stu_name.insert(0,'gaoxiang')#在指定位置,即下标为0的元素的前面增加元素
stu_name.insert(20,'guoxin')#如果指定的下标不存在,那么在末尾增加

修改元素元素的修改都是逐一修改,也没有什么方法。就是通过赋值实现。好像有点low。

stu_name[2]='李东东' #郭欣就被李东东给替换了

删除元素共四个个list方法。前面三个都是删除一个,最后一个是清空list

stus.pop(1)#如果没有参数(参数,就是括号里的东西,说明这些方法都是函数,下节课应该就讲到了),默认删除最后一个。如果有参数,即指定了下标,就和del方法的结果一样。这两种方法去删除超出范围的下标时都会报错。index out of range
stus.remove('guoxin')#用remove方法删除指定的字符串,如果有多个,就删除最左边的。
del stus[1] #删除指定下标的元素
stus.clear()#清空list

以上就是list的增、删、盖、查。

list的其它方法 (今天就学以下几个,以后再学了补充。)

stu_name.count('l刘畅'))#统计某个元素出现的次数(说明count()函数有返回值,一般函数都是返回值,有的是字符串,也有布尔数据True或False),如果列表中不存在该元素,返回0。
stu_name.index('高翔'))# 返回元素的下标,如果有重复,返回第一个元素的下标,如果不存在这个元素,会报错。is not in list
stu_name.reverse()#反转list,没有返回值。没有返回值的都不能直接打印
stu_name.sort()#排序  对list进行排序,没有返回值
stu_name.sort(reverse=True)倒序排序,没有返回值
len(stu_name)#返回list的长度
stu_name2=['李想','王传奇']
stu_name.extend(stu_name2)#把stu_name2的元素依次加到stu_name的最后一个元素的后面。

下面是多维数组其实就是某一个数组的某个元素也是数组,当然也可以是字典。访问多维数组中的某个元素其实就是递推法,如[5,6,7]这个list是stu1的第五个元素,可以通过stu1[4]得到[5,6,7]. 即stu[4]就是[5,6,7]这个list。那么[5,6,7]中的是第二个元素,就是stu[4][1]

stu0=[1,2,3,4]
stu1=[1,2,3,4,[5,6,7]]#二维
stu2=[1,2,3,4,[5,6,7,[8,9,10]]]#三维
stu3=[1,2,3,4,{'w':5,'q':6}]#二维。6就等于stu3[4]['q']

修改、插入、删除多维数组中的元素和一维数组一样,写法就是先找到要更新的元素的所在的那一层的数组。如:

stu1[2]=100#把3替换成了100
stu2[4][3].insert(0,100)#在8前面插入了100

【切片】

可以对字符串和数组进行切片,就是取部分数据。切片不改变原来数据
    name='sdddwe2wdd'
    name[0:5]#从第一个取到第五个。
    name[0:-1:2]#每隔两个取一个
    print(name[-1:0:-1])#步长为负时,就是从右往左读。这时,表示右边元素的下标放在前面。如-1表示最右边的元素,放在前面
    name1=[2,3,4,5,6]
print(name1[0:3])

第二个, dict(字典)
字典也是一种数据类型,他的元素是键值对。即key-value。key也可以说不是字典的元素,value才是。key就是value 的下标,如果说list的下标是不可见的,dict的下标就是可见的。key可以是字符串类型,也可以是int类型。因为是下标,所以不能重复。显然字符串是无法排序的。所以,我们每次打印的字典中的元素排序可能都是不一样的。
新建字典

sut_info={}#
stu_info=dict()新建空字典的两种写法
stu_info={‘name’:‘刘畅’,‘age’:‘24’,“addr”:‘北京’}

查询dict元素。除了和list一样,通过下标,还有一个get方法。

stu_info['name']
stu_info.get('name')#get方法好像必须有参数
stu_info.get('g','刘畅')。如果要取的g不存在stu_info中,返回刘畅。刘畅应该是默认参数

#修改dict中的元素就一种写法,即通过赋值实现

sut_info['addr']='上海'#如果addr不存在,则新增一个key和value;另外,下标的名称是不能修改的。

#新增dict元素 因为字典中的元素无序,所以字典没有insert()和append()方法

stu_info['phone']=12456467。反之,如果phone已存在,则进行的是更新操作
stu_info.setdefault('email','[email protected]')#新增一个key为email value为[email protected]的元素
stu_info.setdefault('email','[email protected]')#如果email 已存在,不做修改。这是和通过赋值的写法进行新增元素的区别。

删除dict元素和list的删除一样

stu_info.pop('email')
#del stu_info['email']

其它方法

**d1={'v':1,'e':2}
d2={'w':3}
d1.update(d2)**#把d2中的key和value加到d1中。没有返回值
d1.keys()#返回一个key的list
d1.values()#返回一个value的list

#循环dict

for x in d1:#第一种,循环key
    print(x)
for x,y in d1.items():#第二种,循环key和value。其中d1.item()返回的是一个列表
    print(x,y)
print(d1.items())
for i in d1:#第三种,通过循环key,取出key和value。比第二种速度快
    s='%s %s'%(i,d1[i])
    print(s)

多维dict,和多维list差不多。示例如下:

d = {
    '春波':{
            "car":{'BMW':5,'BENZ':3,'audi':3,'byd':4},
            "house":["北京",'南京','上海'],
            "money":1000000,},
        '乔美玲':{
            "bag":['xx','lv',],
            "house":['三环','4环'],
            "hzp":['skii','ysl'],
            'language':{
                '普通话':10,
                '东北话':20,
                '日语':0,
                '英语':4
            }
        }
    }
 #1、春波卖了一套上海的房子,卖了500w。这是删除和更新
d['春波']['house'].pop(2)
d['春波']['money']=d['春波']['money']+500000
#2、算一下马春波有多少辆车。这是通过生成list的方式循环value
num=0
for i  in d['春波']['car'].values():
    num+=i
print(num)
#3、春波买了一辆劳斯莱斯。这是增加
d['春波']['car']['lalsi']=1
#4、乔美玲的东北话退步了, 从20级变成了10级。这是更新
d['乔美玲']['language']['东北话']=10
#5、乔美玲会哪些语言。这是生成key的list
print(d['乔美玲']['language'].keys())
#6、打印d验证一下
print(d)

最后,是字符串的方法
字符串也有下标。

s='abc e34    r23 5er'
s[0]#访问第一个下标的元素

s.strip()#默认去掉两边的空格和换行符,没有返回值
s.rstrip()
s.index('e')#查找字符串的下标,返回下标值。如果不存在这个字符串,会报错
s.find('e')#查找字符串的下标,返回下标值。如果不存在这个字符串,返回-1
s.replace('ab','Ab')#替换,把ab替换为Ab
s.count('abcd')#返回某个字符串出现的次数
print(s.upper())#把字符串中的所有英文字符都转成大写
print(s.lower())#把字符串中的所有英文字符都转成小写
s.format()
print(s.split(','))#按照某个字符串来分割字符串。返回一个list
print(s.split())#什么都不传的按照空格来分割字符串
m=['wq','fv','sdgse']
m1=str(m)#列表整合成字符串
new_m=','.join(m)#以某个字符串把list中的字符串连接起来,变成一个大字符串

预习的文件读写

# i =open('/Users/liuchang/Desktop/w.txt',encoding='utf-8')
# print(i.read())
# i.close()
# i = open('/Users/liuchang/Desktop/w.txt','a')
# i.write('woshizhu\n')
# i = open('/Users/liuchang/Desktop/w.txt')
# print(i.read())
# i.close()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章