python 內置函數

內置函數 :

  

什麼是內置函數? 就是python給你提供的. 拿來直接用的函數, 好比print., input等. 截止到python版本3.6.2 python一共提供了68個內置函數. 他們就是python直接提供給咱們的. 有一些咱們已經用過了. 有一些尚未用過. 還有一些須要學完了面向對象才能繼續學習的. 今天咱們就認識一下python的內置函數.python

 

 

abs() dict() help() min() setatter()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() __import__()
complex() hasattr() max() round()  
delattr() hash() memoryview() set()  

 

1.做用域相關

  locals()      返回當前做用域中的名字數組

  globals()    返回全局做用域中的名字 數據結構

2.迭代器相關 

  range()     生成數據函數

  next()    迭代器向下執行一次, 內部實際使用了__next__()方法返回迭代器的下一個項目學習

  iter()   獲取迭代器, 內部實際使用的是__iter__()方法來獲取迭代器編碼

3.字符串類型代碼的執行 

  eval()        執行字符串類型的代碼. 並返回最終結果spa

print(eval("2+2"))  # 4 
n = 8 
print(eval("2+n"))  # 10 

def func():    
    print(666) 
eval("func()")  # 666

   exec()       執行字符串類型的代碼 code

exec(""" 
for i in range(10):    
print(i)
""") 

exec(""" 
def func():    
    print("我是周杰倫") 
func() 
""") 

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

'''    
    參數說明 :        
        1. resource 要執行的代碼 , 動態代碼片斷
        2. 文件名 , 代碼存放的文件名 , 當傳入了第一個參數的時候 , 這個參數給空就能夠了
        3. 模式 , 取值有 3 個 ,
            1. exec: ⼀般放⼀些流程語句的時候
            2. eval: resource 只存放⼀個求值表達式 .
            3. single: resource 存放的代碼有交互的時候 . mode 應爲 single 
''' 

code1 = "for i in range(10): print(i)" 
c1 = compile(code1, "", mode="exec") 
exec(c1) 

code2 = "1+2+3" 
c2 = compile(code2, "", mode="eval") 
a = eval(c2)   

print(a)對象

code3 = "name = input('請輸⼊入你的名字:')"

c3 = compile(code3, "", mode="single")

exec(c3)

print(name)

有返回值的字符串形式的代碼用eval(). 沒有返回值的字符串形式的代碼用exec(). 通常不多用到compile() 

 

4.輸入輸出相關

  input()   獲取用戶輸入

  print()    打印輸出

5.內存相關

  hash()  獲取到對象的哈希值(int,str,bool,tuple)

  id()       獲取對象的內存地址

6.文件操做相關

  open()     用於打開一個文件, 建立⼀個文件句柄 

7.模塊相關   

  __import__()    用於動態加載類和函數 

8.幫助

  help()       函數用於查看函數或模塊用途的詳細說明 

9.調用相關  

   callable()    用於檢查一個對象是不是可調用的. 若是返回True, object有可能調用失敗, 但若是返回False. 那調用絕對不會成功 

10.查看內置屬性

  dir()   查看對象的內置屬性, 方法. 訪問的是對象中的__dir__()方法 

11.數字相關

   bool()     將給定的數據轉換成bool值. 若是不給值. 返回False 

         int()       將給定的數據轉換成int值. 若是不給值, 返回0

        float()    將給定的數據轉換成float值. 也就是小數

        complex()    建立一個複數. 第一個參數爲實部, 第二個參數爲虛部. 或者第一個參數直接用字符串來描述複數 

12.進制轉換

   bin()    將給的參數轉換成二進制

        otc()    將給的參數轉換成八進制

        hex()    將給的參數轉換成十六進制 

13.數學運算

    abs()            返回絕對值

        divmode()     返回商和餘數

        round()        四捨五入(0.51入)

        pow(a, b)    求a的b次冪, 若是有三個參數. 則求完次冪後對第三個數取餘

        sum()    求和

        min()    求最小值

        max()    求最大值 

14.和數據結構相關: 

   列表和元組:

        list()        將一個可迭代對象轉換成列表

        tuple()    將一個可迭代對象轉換成元組

        reversed()    將一個序列列翻轉, 返回翻轉序列的迭代器

        slice()    列表的切片 

st = "⼤家好, 我是麻花藤" 
s = slice(1, 5, 2) 
print(st[s]) 

字符串相關:

        str()            將數據轉化成字符串

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

# 字符串 
print(format('test', '<20'))    # 左對齊 
print(format('test', '>20'))    # 右對齊 
print(format('test', '^20'))    # 居中 # 數值 
print(format(3, 'b'))   # 二進制 
print(format(97, 'c'))   # 轉換成unicode字符 
print(format(11, 'd'))   # 十進制 
print(format(11, 'o'))   # 八進制 
print(format(11, 'x'))   # 十六進制(小寫字母) 
print(format(11, 'X'))   # 十六進制(大寫字母) 
print(format(11, 'n'))   # 和d同樣 
print(format(11))   # 和d⼀樣 
# 浮點數 
print(format(123456789, 'e'))   # 科學計數法. 默認保留6位小數 
print(format(123456789, '0.2e'))   # 科學計數法. 保留2位小數(小寫) 
print(format(123456789, '0.2E'))   # 科學計數法. 保留2位小數(大寫) 
print(format(1.23456789, 'f'))   # 小數點計數法. 保留6位小數 print(format(1.23456789, '0.2f'))   # ⼩小數點計數法. 保留留2位⼩小數 print(format(1.23456789, '0.10f'))   # ⼩小數點計數法. 保留留10位⼩小數 print(format(1.23456789e+10000, 'F'))   # ⼩小數點計數法.

   bytes()    把字符串轉化成bytes類型 

s = "你好" 
bs = s.encode("UTF-8") 
print(bs) 
s1 = bs.decode("UTF-8") 
print(s1) 
bs = bytes(s, encoding="utf-8")     # 把字符串編碼成UTF-8 
print(bs)

   bytearray()    返回一個新字節數組. 這個數字里的元素是可變的, 而且每一個元素的值得範 圍是[0,256) 

ret = bytearray('alex',encoding='utf-8') 
print(ret[0]) 
print(ret) 

   memoryview()    查看bytes在內存中的狀況 

# 查看bytes字節在內存中的狀況 
s = memoryview("麻花藤".encode("utf-8")) 
print(s) 

    ord()    輸入字符找帶字符編碼的位置

        chr()    輸入位置數字找出對應的字符

        ascii()  是ascii碼中的返回該值 不是就返回\u... 

# 找到對應字符的編碼位置 
print(ord('a')) 
print(ord('')) 

# 找到對應編碼位置的字符 
print(chr(97)) 
print(chr(20013)) 

# 在ascii中就返回這個值. 若是不在就返回\u... 
print(ascii('a')) 
print(ascii('')) 

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

# repr 就是原封不動的輸出, 引號和轉義字符都不起做用 
print(repr('你們好,\n \t我叫周杰倫')) 
print('你們好我叫周杰倫') 
# %r  原封不動的寫出來 
name = 'taibai' 
print('我叫%r' % name) 

  數據集合:

   dict()    建立一個字典

   set()     建立一個集合 

   frozenset()    建立一個凍結的集合. 凍結的集合不能進行添加和刪除操做   

  其餘相關:         

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

        sorted()    對可迭代對象進行排序操做(講完lamda後再講這個)

        enumerate()    獲取集合的枚舉對象 

lst = ["alex", "wusir", "taibai"] 
for index, el in enumerate(lst):    
    print(str(index)+"==>"+el)

   all()      可迭代對象中所有是True, 結果纔是True

        any()    可迭代對象中有一個是True, 結果就是True 

print(all([1,2,True,0])) 
print(any([1,'',0])) 

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

l1 = [1,2,3,] 
l2 = ['a','b','c',5] 
l3 = ('*','**',(1,2,3)) 
for i in zip(l1,l2,l3):    
    print(i) 

   filter()     過濾(講完lamda)

        map()    會根據提供的函數對指定序列作映射(lamda)

    參考資料料: https://www.processon.com/view/link/5b4ee15be4b0edb750de96ac 

相關文章
相關標籤/搜索