内置函数与匿名函数
內置函數 1.取絕對值的內置函數: abs print(bas(-9)) #-9的絕對值會被打印出來 2. 處理可迭代對象的函數(一):all name = ("Tom","Jack","Lily") print(all(name)) #因name這個變量定義的可迭代對象是一個正確的列表 所以實print執行會返回Truse,只有可迭代對象全為真, 返回結果才為True. 3.處理可迭代對象函數(二):any name = ("Tom","Jack","Lily",[]) #這本身并不是一個列表 print(any(name)) #返回結果會是True,因為any函數對對象處理是或的關系 只有列表中的元素全為假,返回值才為假 4.將十進制轉換成二進制的函數 bin() num = 10 print(bin(num) #0b1010 0b意為轉換的是二進制形式 5.將十進制轉換成八進制的函數 oct() print(oct(10)) #這是一種簡寫形式,直接轉換,o012 6.將十進制轉換成十六進制的函數:hex() print(hex(19)) #19轉換成十六進制形式打印 7.對結果進行判斷的函數 bool() print(bool(2>3)) #返回False,可以在函數體中加入bool 8.將字符類型轉換成十六進制位的字節碼后并打印 print(bytes("jiahb",encoding="utf-8")) #在轉換的最后加上編碼類型,gbk utf-8 9.將十六進進制字節碼轉換成字符串(或漢字),反編譯 print(str(bytes("jiahb",encoding="utf-8"))) #最后打印出的依然是alex,反編譯了。 10.判斷函數是否可以被調用 callable def f1(): pass f2=(121) print(callable(f1)) #判斷一個是函數是否可以被調用,其實就是判斷一個函數是否是完整的 11.將數字轉換成ASSIC碼表中對應的值 chr print(chr(1)) #還有ASSIC碼表中可能對應了一個空的值,即沒有返回值。 12.將字符串編譯成python代碼 complile() name = "jiab" b = compile(name,'','','exec') exec(b) #使用compile模塊下的exec方法對name這個變量定義的字符串進 行編譯,編譯結果是沒有返回值的 print(eval("8*8")) #打印8*8的計算結果,但是有返回值 print(exec("8*8")) #沒有返回值,只會打印下None 13.快速查看模塊提供了哪些功能 dir() a. print(dir(compile)) #查看compile這個內置函數的基本功能 也可以查看導入模塊的基本功能信息 b.import json print(dir(json)) #查看json模塊的基本功能 14.求兩個數的商和余數 divmod() num = divmod(12,8) print(divmod) print(num[0]) #取商 print(num[1]) #取余數 15.判斷對象是否是某個類的實例 isinstance name = "jiahb" print(isinstance(s,str)) #創建的對象"jiahb"是否是str這個類的實例,是則True,不是則False. 16.查看創建變量的內存地址 id() name = "jiahb" print(id(name)) #返回一串數字,即內存的地址 17.將創建的對象轉換成浮點型 float() name = "12" print(float(name)) #轉換成12.0 18. 將對象轉換成hash值 hash() name = "jiahb" print(hash(name)) #求定義的變量的一個哈希值,并將其當作key進行存儲(這點兒沒太明白) 19.創建一個迭代器 iter() 后續再加 20.查看python創建變量的字符串的長度,也可以按字節查看 len() python3默認是按字符查看,pyhon2.7只能按字節查看 name = "jiahb" print(len(name)) python3.0按字節查看 b = bytes(name,encoding='utf-8') print(len(b)) #將轉換成的字節數打印出來 21.對多個數字進行求和運算 sum() print(sum(11,22,33,44)) #多個數字累加求和 22.求若干數字中最大最小值 max() min() print(max(11,22,33,44)) print(min(11,22,33,44)) 23.求某個數的指數 pow() print(pow(2,10)) #2**10會打印 24.面向對象中會用到的內置函數 repr() 25.求序列的反轉 reverse() 注:reverse這個反轉函數只能處理列表,不能處理元組 num = [11,22,33,44] num.reverse() print(num) 26.把一個字母轉換成數字 ord() print(ord("a") 27.求四舍五入的數 round() print(round(float(1.9)) #返回2 28.slice 切片功能 python3.0新加功能 29.循環是取位置對應符號enumerate() dic={'name':'egon','age':18} for i in enumerate(dic): print(i) 結果 ?: ? (0,'name')(1,'age') salaries={ 'egon':3000, 'alex':100000000, 'wupeiqi':10000, 'yuanhao':2000 } def func(x): return salaries[x] print(max(salaries,key=lambda x:salaries[x])) min zip 映射 map() map()函數接收兩個參數,一個是函數,一個是序列,map將傳入的函數依次作用到序列的每個元素,并把結果作為新的list返回 map:映射 l=[1,2,3,4] m=map(lambda x:x**2,l) print(list(m)) names=['alex','wupeiqi','yuanhao'] print(list(map(lambda item:item+'_SB',names))) reduce:合并 from functools import reduce res=0 for i in range(100): res+=1 print(reduce(lambda x,y:x+y,range(100),100)) filter:過濾 names=['alex_sb','yuanhao_sb','wupeiqi_sb','egon'] print(list(filter(lambda name:name.endswith('_sb'),names))) sorted l=[1,2,4,9,-1] print(sorted(l)) #從小到大 print(sorted(l,reverse=True)) #從大到小 匿名函數: 關鍵字lambda表示匿名函數,冒號前面的x表示函數參數。 匿名函數有個限制,就是只能有一個表達式,不用寫return,返回值就是該表達式的結果。 用匿名函數有個好處,因為函數沒有名字,不必擔心函數名沖突。此外,匿名函數也是一個函數對象,也可以把匿名函數賦值給一個變量,再利用變量來調用該函數: 范例: l=[1,2,3,4] m=map(lambda x:x**2,l) print(list(m)) names=['alex','wupeiqi','yuanhao'] print(list(map(lambda item:item+'_SB',names))) 范例:活用列表解析 with open('goods',encoding='utf-8') as f: ? ? # for line in f: ? ? #? ? ?l=line.split() ? ? #? ? ?goods_info.append({'name':l[0],'price':l[1],'count':l[2]}) ? ? goods_info=[{'name':line.split()[0],'price':float(line.split()[1]),'count':int(line.split()[2])} for line in f \ ? ? ? ? ? ? ? ? if float(line.split()[1]) > 3000] print(goods_info)
轉載于:https://www.cnblogs.com/lizhaoyu/p/7055991.html
總結
- 上一篇: C语言交换两个数字的三种做法
- 下一篇: 为什么计算机存储的是二进制补码?