內置函數,匿名函數

經常使用的內置函數:

1.做用域相關:locals()  globals()  *****

  globals()   獲取全局變量的字典緩存

  locals()  獲取執行本方法的所在的命名空間內的局部變量的字典函數

1.1其餘:eval()  exec()  compile()  瞭解,慎用編碼

  eval()  將字符串類型的代碼執行並有返回值spa

  exec()   將字符串類型代碼執行無返回值3d

  compile()  將字符串類型的代碼編譯。代碼對象能經過exec語句來執行或者eval()進行求值   code

print(eval("1+2"))  #3
print(exec("1+2"))  #None
print(exec("print('1+2')")) #1+2   None

2.輸入輸出相關:input()  print()*****  

input()  輸入orm

s = input("請輸入內容")  #輸入的內容賦值給s
print(s)        #輸入什麼打印什麼,類型爲str

print()  輸出  看源碼對象

def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
    """
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    file:  默認是輸出到屏幕,若是設置爲文件句柄,輸出到文件
    sep:   打印多個值之間的分隔符,默認爲空格
    end:   每一次打印的結尾,默認爲換行符
    flush: 當即把內容輸出到流文件,不做緩存
    """

print源碼剖析
f = open("tmp_file","w")
print(123,234,345,sep=",",file=f)  將123,234,345,以逗號隔開,寫入文件tmp_file文件中

3.數據類型相關:type()  返回變量的數據類型  *****

4.內存相關: id()  hash()  ***

id(o)  o是參數,返回一個變量的內存地址blog

hash(o) o是參數,返回一個可hash變量的哈希值,不可hash的變量被hash以後會報錯。排序

文件操做相關: open()  *****

  open()  打開一個文件,返回一個文件操做符(文件句柄)

操做文件的模式有r,w,a,r+,w+,a+共6種,每一種方式均可以用二進制的形式操做(rb,wb,ab,rb+,wb+,ab+)  能夠用encoding指定編碼

模塊操做相關  

__import__導入一個模塊

import time

和調用相關  callable(o)  o是參數,看這個變量是否是可調用  dir()

若是o是一個函數名,就會返回True

def func():pass
print(callable(func))   #True  #參數爲函數名
print(callable(123))    #False #數字不能調用

dir() 返回一個列表,默認查看全局空間內的屬性,也接受一個參數,查看這個參數內的方法或變量

和數字相關:

數據類型相關:bool,int,float,complex

進制轉換相關:bin(十轉二)oct(十轉八),hex(十轉十六)

數學運算:abs(絕對值),divmod(返回(除,餘)),min(最小),max(最大),sum(求和),round(小數精確),pow(冪運算)

abs()返回數字的絕對值

round()  保留浮點數的小數位數,默認保留整數

divmod(除數,被除數):計算除數與被除數的結果,返回一個包含商和餘數的元組

pow() 求某個數的幾回方

print(abs(-5) )      #5
print(divmod(12,5))     #(2,2)  商爲2,餘數爲2
print(round(7*3.235,2))   #22.64  #(保留倆位小數
print(pow(3,2))     #9  #3的2次方

sum(可迭代對象,初始值(默認=0))  求和,

min(可迭代 對象,key)返回可迭代對象的最小值

max(可迭代對象,key)返回可迭代對象的最大值,能夠經過自定義函數規則來進行

相關內置函數  reversed() 翻轉     並返回翻轉序列的迭代器

  slice()  構造一個切片模板,用於對許多列表進行相同的切片

li = ['a','b','c','d','e','f','g']
sli_obj = slice(3)
print(li[sli_obj])

字符串相關

  str  將數據類型轉換成字符串類型

  format 與具體數據相關,用於計算各類小數

  bytes  用於不一樣編碼之間的轉化,只能單向轉化

  repr  返回一個對象的string的形式(原形畢露)

b = "123"
print(b)        #123
print(repr(b))  #'123'

數據集合  dict  set   

frozenset(返回一個凍結集合,凍結後的集合不能添加任何元素)

相關內置函數:

  len()  返回一個對象中元素的個數

  sorted: 對全部可迭代的對象進行排序操做

l1 = [("c",20),("b",50),("a",10)]
l2 = sorted(l1,key=lambda x:x[1])
print(l2)   #[('a', 10), ('c', 20), ('b', 50)]

  enumerate:枚舉,返回一個枚舉對象

  all:可迭代對象中,全是True才返回True  (用於判斷可迭代對象中是否有空的字符,列表)

  any:可迭代對象中,有一個True就返回True

zip:函數用於將可迭代的對象做爲參數,將對象中對應的元素打包成一個個元組,而後返回由這些元組組成的列表。若是各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同。

l1 = [1,2,3,5,6,7]
tu1 = ('alex','太白', 'wusir', '女神')
dic = {'name': '日天', 'age':28, 'hobby': 'tea', 'weight':100}
l2 = zip(l1,tu1,dic)
for i in l2:
    print(i)
#(1, 'alex', 'name')    (2, '太白', 'age') (3, 'wusir', 'hobby')  (5, '女神', 'weight')

filter(函數,可迭代對象) 過濾,迭代器  與函數生成器的篩選模式相同

l1 = list((i for i in range(10) if i%2==0))
print(l1)   #[0, 2, 4, 6, 8]
def func1(x):
    return x % 2 == 0
print(list(filter(func1,l1)))   #轉換成列表的形式[0, 2, 4, 6, 8]
#filter     生成的是迭代器

map(函數,可迭代對象)會根據提供的函數對可迭代對象進行映射  迭代器  循環模式  與函數生成器的循環模式相同

l1 = [1,2,3,4]
print(list((i**2 for i in l1)) ) # [1, 4, 9, 16]
def func(x): return x**2
print(list(map(func,l1)))   #[1, 4, 9, 16]

 

匿名函數 :lambda表達式

  對於簡單的函數進行縮寫,有且只有返回值得函數才能夠進用匿名函數進行簡化,又稱一行函數

 

相關文章
相關標籤/搜索