內置函數,匿名函數

內置函數

做用域相關

locals()#返回本地做用域中全部的名字

globals()#返回全局做用域中的名字python

def func():
    a ,b = 1,2
    print(a,b)
    print(locals())#{'b': 2, 'a': 1}
print(globals())#{'__name__': '__main__', '__doc__': None, '__package__': None,
# '__loader__': <_frozen_importlib_external.SourceFileLoader objectat 0x0000000388D7E128>,
# '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>,
#  '__file__': 'D:/python/python113天/做業/day11.py', '__cached__': None,
# 'func': <function func at 0x0000000388D13F28>}

迭代器生成器相關

next(迭代器)       #返回迭代器下一個值,至關與__next__()數組

iter(可迭代對象)    #獲得一個迭代器,至關與__iter__()函數

range(1,10,2)    #可迭代對象,不是迭代器ui

內存相關

id(對象)    #獲得內存地址
hash(對象)     #獲得對象的hash值,相同可hash的數據的hash值再一次程序執行過程當中老是不變的
不可hash的數據類型:list,dict,set編碼

進制轉換

bin(10)  #十進制轉二進制
oct(10)  #十進制轉八進制
hex(10)  #十進制轉十六進制spa

bytes('asd',encoding='utf-8')  #str--->bytes
bytearray()  #字節數組,修改時能夠節省內存,查找位置code

memoryview()  #字節類型的切片,不佔內存
ord('')  #字符轉成數字,按utf-8編碼轉對象

計算相關

divmod(1,2)  #返回商和餘數
round(2.35467,2)  #精確值,保留兩位小數
pow(1,2)  #求1的2次冪
sum([1,2,3])  #求和
min((1,2,3),key=abs)  #求最小值,先執行abs函數,再比較最小值
max((1,2,3))  #求最小值,先執行abs函數,再比較最小值blog

其餘

dir(對象)  #查看一個對象擁有的方法
callable(對象)  #查看對象是否能被調用,是不是函數
help()  #查看幫助文檔,使用方法
import   #導入模塊
open()  #打開一個文件排序

input('提示')  #用戶輸入
print(end='',sep='',file='d:\jcc.txt')  #自動換行,end='',默認每一行後加回車,sep=''多個值輸出時指定分隔符,file='':指定輸出文件,默認控制檯
exec('print(123)')  #執行一條python語句,exec沒有返回值,執行一些簡單流程控制
eval('1+2+3')  #eval有返回值,執行一些有返回值的簡單運算
compile(code,'','exec')  #編譯代碼,轉換成字節碼,exec表示簡單流程類編譯,single表示交互類編譯
complex  #複數
float  #浮點數,當小數點位數太多時就會出現輸出不許確,二進制轉換的緣由

len(對象)  #返回長度
all([1,2,3,0])  #有任意一個值是false就返回false
any()  #有任意一個True就是True

repr('')  #帶符號輸出
print(repr('123'))  #輸出'123'
dict()
set()
frozenset()#不可變集合

幾個重要的內置函數

zip

zip(可迭代對象) 拉鍊方法

list1 = [1,2,3]
list2 = ['a','b','c']
dic = {'k1':1,'k2':2}#只包含key值
for i in zip(list2,list1):
    print(i)#把傳入的可迭代對象按照索引組成一個個新的元組

filter

filter(函數名,可迭代對象)過濾方法,返回符合函數規則的數據

返回列表中的奇數
def is_odd(n):
    return n%2==1
ret = filter(is_odd,[1,2,3,4])

map

#map(函數名,可迭代對象)
#執行先後元素個數不變,值可能發生改變

res = map(abs,[1,2,3])
for i in res:
    print(i)#分別取絕對值

sort

#sort  在源列表的基礎上進行排序
list1 = [1,3,2,4]
print(id(list1))
list2 = list1.sort(key=abs)
print(id(list2))


#sorted 從新生成一個列表,所有返回,佔用內存空間
list1 = [1,3,2,4]
print(list1)
list2 = sorted(list1)
print(list1)
print(list2)

reserved

reversed() #返回一個反轉列表的迭代器

gen = reversed([1,2,3])
print(gen)#<list_reverseiterator object at 0x0000008C6762F780>
for i in gen :
    print(i)

slice()

slice()#切片規則

str1 = 'abcdefghijklmopqrstuvwxyz'
s = slice(1,4)#定義一個切片規則
print(str1[s])

匿名函數

關鍵字 lambda
lambda (參數):(返回值)

sum1 = lambda x,y:x+y
print(sum1(1,2))
相關文章
相關標籤/搜索