1. 程式人生 > >精心整理python自動化測試小技巧二

精心整理python自動化測試小技巧二

31.字典的查詢預設函式:dict.setdefault(“鍵”,值) 如果找不到此鍵就返回後面的值
32.淺拷貝:[:] list dict() copy
深拷貝:import copy a=copy.deepcopy(b)
33.在for迴圈中,xrange()比range()更好,因為x不會建立列表,然後再迭代,而是直接迭代。
34.人工觸發異常
raise 異常,如果raise語句被執行,則後面的語句都不能執行
raise 異常,“異常說明文字自定義”
35.with語句
匯入語句必須在整個程式開頭:from future import with_statement
with open(‘xxx’,’r’) as f: 試圖開啟一個檔案,如果一切正常,就自動把檔案物件賦值給f,然後往下走,最後自動關閉檔案
也在類後使用,增加很大友好度。但是類必須有enter

exit 屬性函式。
with 類名 as 接收返回值得形參 :
print xxxxx
with 最強大的在於,exit() 方法可以處理異常,不論出現了什麼異常,都可以 只 安全執行exit(),
def exit(self, exc_type, exc_val, exc_tb): exit函式中,有記載異常資訊的三個引數,可以直接print出來。如果沒有異常則全是None
36.集合更新方法:s |= set(“ab”) 重複替換
集合交集更新法: s &= set(“ab”) 保留共有成員
集合差更新: s -= set() 去除掉set內容
集合對稱差分更新: s ^= set() 去除掉共有的,剩下的是s或set中的
37.else可以用在while 和 for中,break可以一起打破。else的內容必須在迴圈完全結束後才執行。所以只要是迴圈正常結束,都會執行else。break則不會。
try-finally 語句:無論TRy中是否有異常,finally語句都必須被執行。
finally語句如果引發新異常,那麼之前try的異常將丟失
38.輸出字母或數字的ascii

ord(“A”)
ascii轉換成字元
chr(65)
或 “%c”%65
拼接字串:
+號
或 ”.join((“aaaaa”,”bbbbbb”,”ccccc”))
或 ‘%s %s’%(“aaaa”,”bbbb”)
或 s=”aaaaa” “bbbbbb”

39.try except else finally :finally的語句無論是否發生異常都肯定會執行,else的語句必須要try的語句全部執行成功才執行.可用來檢查是否出現了異常
except 異常名,e:
print xxxxxxx,e
e是標準的錯誤輸出資訊。reson,diag
多個except可對應一個try
一個except對應多個異常的時候,需要用元組,except (error1,error2,error3) [,reson]:
捕獲所有異常:except Exception,e:
新的所有:except BaseException,e:
40.列表倒敘的一個方法:列表名[::-1] 切片
41.切換大小寫
import string
string.upper()
42.string.letters :26字母大小寫和數字
43.列舉函式:enumerate():
for index, item in enumerate(“abcd”):
print (index, item)
顯示的結果是:
0 a
1 b
2 c
3 d
44.轉元組函式:tuple()
轉列表函式:list()
45.打包函式zip()
s,t=”foa”,”obr”
zip(s,t)
[(‘f’,’o’),(‘o’,’b’),(‘a’,’r’)]
zip可以用於雙迴圈:
for i,j in zip(list1,list2)
46.字串和整形 連線成字串
a=”abc”
b=1
s=”%s%d”%(a,b)
47.把使用者輸入的內容全部變為小寫 a=raw_input(u”請輸入:”).lower()
.upper 大寫
48.加法減法:sum=add(*[2,4]) sum為6 需要先匯入 import operator
真正除法:from future

import division
49.隨機數模組:random
randint()倆個整形引數,返回二者之間的隨機整形
randrange()類似
uniform()返回的是浮點型
random()返回浮點型,但是下線0,上限1.不接受資料
choice()隨機返回給定序列.括號內放容器變數的引用(如列表名)
50.isinstance函式,可以判斷變數資料型別,例子:
if isinstance(變數,(int,long,float,complex)):
51.列表方法:
.append(obj) 新增obj
.count(obj) 返回obj的數量
.extend(seq) 把seq的內容新增到列表中
.index(obj,i=0,j=5) 在前閉後合區間返回obj的序號(0開始)
.insert(index,obj) 在index處新增obj
.pop(index=-1) 刪除並返回指定位置的物件,預設是最後一個
.remove(obj) 從列表中刪除物件obj
.reverse() 原地反轉列表
.sort(func=None,key=None,reverse=False) 以指定方式排序列表中的成員。當reverse為true時,為倒敘
52.絕對值函式:abs()
返回元組函式:coerce() :遵照 複數>浮點>長整形
返回商和餘數的除法函式:divmod(10,3) —-> (3,1)
指數運算函式:pow(數,指數) 或 pow(數,指數,除數) same as (數^指數)%除數
四捨五入函式:round(數,小數點後保留位)
int()是直接擷取小數部分,返回整形
floor()是得到最接近的小於原數的整數,但是為浮點型
round()是四捨五入得到最接近整數,但是為浮點型
十六進位制轉換函式:hex()
八進位制轉換函式:oct()
整形轉字元函式:chr() 數值必須在0-255
字元轉整形:ord()
53.生成器:

def a():
yield 1
yield 2
for i in a():
print i
yield c
c.send(5) 給生成器傳送值5
c.next() 返回生成器的下個值
c.close() 生成器退出

54.檢視xx的路徑或字典內容
print sys.path
print sys.modules
55.複數運算需要匯入cmath模組
56.web端易忽視,多錯誤提示的重合
57.對字串可以進行拆分
字串名.split(‘拆分的標識’)
58.對字串進行覆蓋操作
字串名.replace(“舊字串”,”新字串”)
字串倒著數是-1開始的
給列表最後加元素 列表名.append(“元素”),中間用.insert(2,”元素”)
刪除列表元素 del movies[2]
連線字串可以用+號或者 字串1.extend(字串2)
59.列表解析
print a=[mo for mo in 列表名]
列印每個元素的首字母
print [i for mo in 列表名 for i in mo[0]]
列表和元組是互相可以轉換的。
list(元組名)
tuple(列表名)
60.字串轉化格式化符號
%c 轉換成字元
%r 優先repr()轉換
%s 優先str()
%d/%i 轉換成有符號的十進位制數
%u 轉換成無符號的十進位制數
%o 轉換成無符號的八進位制數
%x/%X 轉換成無符號的十六進位制,x/X代表大小寫
%e/%E 轉成科學計數法e/E代表控制輸出
%f/%F 轉換成浮點型 小數部分自然截斷
%g/%G 是%e或%f 和 %E或%F 的縮寫
%% 輸出一個%
輔助格式化符號
如# “%#X”108 —– “0x6C”
* 定義寬度或小數點精度
- 用作左對齊
+ 在正數前面顯示加號
在正數前面顯示空格
在各種進位前面顯示0x等
0 顯示的數字前面用0來填充而不是預設的空格 如”%03d”%44 —- 044
(var) 對映變數(字典引數)
m.n m是顯示的總寬度 包括數字前的空格,n是小數點後的位數(如果是%d的話,就是數字數量)