assert 斷言
- 使用assert斷言是個好習慣
- 在沒完善一個程序之前,我們不知道程序在哪里會出錯,與其讓它在運行最崩潰,不如在出現錯誤條件時就崩潰,這時候就需要assert斷言的幫助。
- assert異常參數:在斷言表達式后添加字符串信息,用來解釋斷言并更好的知道是哪里出了問題
- assert用法
assert 表達式 [, 異常提示字符串] - 示例如下:
assert type(users) == list #斷言users對象的類型為list
assert len(users) >5 #斷言users對象的元素個數大于5 -
assert異常時,會報AssertionError錯誤,其后會帶上斷言時的異常參數,這樣方便排查出問題的地方。
Paste_Image.png
lambda
- 函數格式:
lambda [parameters]: commands - 函數功能:
lambda創建匿名函數,而用def創建的方法是有名稱的,它是一個表達式。優點:省去定義函數的過程,不需要考慮命名問題。 - 命令實例:
直接使用
print(lambda x:x+1(1)) #輸出2,(1)是給x復制
帶1個參數
func1 = lambda x:x*2
print(func1(3)) #結果為6
帶多個參數(可以初始化參數)
func2 = lambda x,y,z=1: x+y+z
print(func2(2,3)) #結果為6
print(func2(2,3,4)) #結果為9
filter()
filter()為已知的序列的每個元素調用給定的布爾函數,調用中,返回值為非零的元素將被添加至一個列表中
-
filter()用法:
filter(bool_function,list_arr |tuple_arr|set_arr)
*示例:
def getbigdata(x):
if x>20:
return True
else:
return False
L = [1,2,4,5,35,8,22,11,29,81]
big_L = filter(getbigdata,L)
print(list(big_L))T = (16,20,45,5,35,8,22,11,29,81) big_T = filter(getbigdata,T) print(list(big_T)) S = {16,20,45,5,35,8,22,11,29,81,1012} big_S = filter(getbigdata,S) print(list(big_S))
-
輸出結果
Paste_Image.png