這兩天寫文章寫得快吐了,寫完信息安全的讀書筆記而後又寫一個軟件使用教程,難受了。不過堅持住就好,繼續奮鬥吧。python
來來總結一波:數組
今天學習了lambda匿名函數、一些重要的內置函數如:abs、sum、max、min、zip、sorted、filter、map安全
通常性重要的是:bytes、int、chr、ord、bin、oct、hex、repr、all、any等閉包
lambda 函數又稱爲匿名函數,從語法上看它就是一個函數,並且功能還很簡單。函數
# 語法: func = lambada 形參:結果 func1 = lambda a, b: a+b func1(1, 2) # 3
可是 Python 爲何還要單獨搞一個匿名函數呢?答案是自有其道理的。通常 lambda 是與其餘匿名函數組合使用,起到超重要的做用。學習
例如:和 sorted 函數配合使用,使用 lambda 能夠將其成員中的一部分做爲排序依據。編碼
dic = {"name": "13", 'hobby': '6666', 'age': '14'} # 1.默認排序 print(sorted(dic)) # ['age', 'hobby', 'name'] # 2.使用值做爲排序依據,從小到大 sorted(dic, key=lambda a:int(dic[a]),reverse=False) # ['name', 'age', 'hobby']
內置函數是Python中最重要的亮點之一,有些函數真的可讓你一行低十行。code
# 今天寫的內置函數都是很是重要的 lis = [1, 2, 3, 4, 5] dic = {"name": "13", 'hobby': '6666', 'age': '14'} # 1. sum print(sum(lis)) # 15 print(sum((1, 2, 3, 4, 5))) # 15 # 2. max min def max_test(x): return int(dic[x]) max(lis) # 5 max(dic, key=lambda x:int(dic[x])) # hobby max(dic, key=max_test) # hobby # 能夠看出,key也一樣能夠用一個函數替代lambda,也說明lambda就是簡單的函數
# 3. zip函數 lis1 = [1, 2, 3] lis2 = (4, 5, 6) lis3 = (7, 8, 9) zip(lis1, lis2, lis3) # 4.sorted函數 dic = {"name": "13", 'hobby': '6666', 'age': '14'} lis = [23, 4, 5, 1, 9, 6] print(sorted(dic, key=lambda x: int(dic[x]))) print(sorted(lis, reverse=True))
# 5.filter函數 lis = [23, 4, 5, 1, 9, 6] def func(x): return x>6 f1 = filter(lambda x:x>6, lis) print(list(f1)) # [23, 9] print(list(filter(func, lis))) # [23, 9] # 6.map函數 f2 = map(lambda x: x+2, lis) print(list(f2)) # [25, 6, 7, 3, 11, 8]
一、int(x, base=6),將x轉成base進制的數對象
二、divmod(x, y),返回x除以y的商和餘數。排序
三、round(2.8, 1),返回指定小數位數的浮點型
四、pow(base, index),冪指數
# 一、int int(3.5) # 3 float轉int型 int('0100', base=2) # 4 其餘base進制字符串轉整型 # 二、divmod divmod(9, 2) # (4, 1) # 三、round round(3.14, 1) # 3.1 round(3.16, 1) # 3.2 # 四、base pow(2, 4) # 16
五、repr("python"),返回帶有引號的字符串。
六、all(iterable),可迭代對象中全都是真則返回True。any(iterable),如有真就返回True
# 五、repr print(repr("python")) # 'python' # 六、all、any lis = [1, 2, '666', True] lis2 = [1, 2, '', True] all(lis) # True all(lis2) # False any(lis) # True any(lis2) # True
七、bytes(), 將字符串指定編碼方式進行編碼,如不懂編碼,能夠看*
# 七、bytes b1 = bytes(name, encoding='utf8') print(f"b1: {b1}, type: {type(b1)}") # b1: b'python', type: <class 'bytes'> print(bytes("西", encoding='gbk')) # b'\xce\xf7' print(bytes("西", encoding='utf8')) # b'\xe8\xa5\xbf'
閉包是什麼?閉包是嵌套在函數中的函數,且對外層函數中的變量的引用。
def func(age): name = 'python' def inner(): print(name) print("內層函數 inner 被調用") return 'inner' return inner res = func(17) print(res) print(res()) # <function func.<locals>.inner at 0x7fbfe22f9550> # python # 內層函數 inner 被調用 #inner
閉包能夠避免函數中的一些非全局變量被銷燬,能夠直接在內層函數中使用。
我以爲閉包其實就是爲了後面的裝飾器打基礎的。
今天的重點是掌握一些重要的內置函數以及 lambada 匿名函數的用法,仍是多看多練多總結!