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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章