打基礎一定要吃透這12類 Python 內置函數

2021-01-10 高教幫

內置函數就是python給你提供的, 拿來直接用的函數,比如print.,input等。截止到python版本3.6.2 python一共提供了68個內置函數,我將它們分成 12 類,方便你學習。

1. 和數字相關

1. 數據類型

bool : 布爾型(True,False)int : 整型(整數)float : 浮點型(小數)complex : 複數

2. 進位轉換

bin() 將給的參數轉換成二進位otc() 將給的參數轉換成八進位hex() 將給的參數轉換成十六進位

print(bin(10)) # 二進位:0b1010print(hex(10)) # 十六進位:0xaprint(oct(10)) # 八進位:0o12

3. 數學運算

abs() 返回絕對值divmode() 返回商和餘數round() 四捨五入pow(a, b) 求a的b次冪, 如果有三個參數. 則求完次冪後對第三個數取餘sum() 求和min() 求最小值max() 求最大值

print(abs(-2)) # 絕對值:2print(divmod(20,3)) # 求商和餘數:(6,2)print(round(4.50)) # 五舍六入:4print(round(4.51)) #5print(pow(10,2,3)) # 如果給了第三個參數. 表示最後取餘:1print(sum([1,2,3,4,5,6,7,8,9,10])) # 求和:55print(min(5,3,9,12,7,2)) #求最小值:2print(max(7,3,15,9,4,13)) #求最大值:15

2. 和數據結構相關

1. 序列

(1)列表和元組

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

print(list((1,2,3,4,5,6))) #[1, 2, 3, 4, 5, 6]print(tuple([1,2,3,4,5,6])) #(1, 2, 3, 4, 5, 6)

(2)相關內置函數

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

lst = "你好啊"it = reversed(lst) # 不會改變原列表. 返回一個迭代器, 設計上的一個規則print(list(it)) #['啊', '好', '你']lst = [1, 2, 3, 4, 5, 6, 7]print(lst[1:3:1]) #[2,3]s = slice(1, 3, 1) # 切片用的print(lst[s]) #[2,3]

(3)字符串

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

print(str(123)+'456') #123456  format() 與具體數據相關, 用於計算各種小數, 精算等.

s = "hello world!"print(format(s, "^20")) #劇中print(format(s, "<20")) #左對齊print(format(s, ">20")) #右對齊# hello world! # hello world! # hello world!print(format(3, 'b' )) # 二進位:11print(format(97, 'c' )) # 轉換成unicode字符:aprint(format(11, 'd' )) # 進位:11print(format(11, 'o' )) # 八進位:13 print(format(11, 'x' )) # 十六進位(寫字母):bprint(format(11, 'X' )) # 十六進位(大寫字母):Bprint(format(11, 'n' )) # 和d樣:11print(format(11)) # 和d樣:11print(format(123456789, 'e' )) # 科學計數法. 默認保留6位小數:1.234568e+08print(format(123456789, '0.2e' )) # 科學計數法. 保留2位小數(小寫):1.23e+08print(format(123456789, '0.2E' )) # 科學計數法. 保留2位小數(大寫):1.23E+08print(format(1.23456789, 'f' )) # 小數點計數法. 保留6位小數:1.234568print(format(1.23456789, '0.2f' )) # 小數點計數法. 保留2位小數:1.23print(format(1.23456789, '0.10f')) # 小數點計數法. 保留10位小數:1.2345678900print(format(1.23456789e+3, 'F')) # 小數點計數法. 很大的時候輸出INF:1234.567890

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

bs = bytes("今天吃飯了嗎", encoding="utf-8")print(bs) #b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x90\x83\xe9\xa5\xad\xe4\xba\x86\xe5\x90\x97'   bytearray() 返回一個新字節數組. 這個數字的元素是可變的, 並且每個元素的值得範圍是[0,256)ret = bytearray("alex" ,encoding ='utf-8')print(ret[0]) #97print(ret) #bytearray(b'alex')ret[0] = 65 #把65的位置A賦值給ret[0]print(str(ret)) #bytearray(b'Alex')

ord() 輸入字符找帶字符編碼的位置chr() 輸入位置數字找出對應的字符ascii() 是ascii碼中的返回該值 不是就返回u

print(ord('a')) # 字母a在編碼表中的碼位:97print(ord('中')) # '中'字在編碼表中的位置:20013print(chr(65)) # 已知碼位,求字符是什麼:Aprint(chr(19999)) #丟for i in range(65536): #列印出0到65535的字符print(chr(i), end=" ")print(ascii("@")) #'@'

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

s = "今天\n吃了%s頓\t飯" % 3print(s)#今天# 吃了3頓 飯print(repr(s)) # 原樣輸出,過濾掉轉義字符 \n \t \r 不管百分號%#'今天\n吃了3頓\t飯'

2. 數據集合

字典:dict 創建一個字典

集合:set 創建一個集合

frozenset() 創建一個凍結的集合,凍結的集合不能進行添加和刪除操作。

3. 相關內置函數

len() 返回一個對象中的元素的個數sorted() 對可迭代對象進行排序操作 (lamda)

語法:sorted(Iterable, key=函數(排序規則), reverse=False)

Iterable: 可迭代對象key: 排序規則(排序函數), 在sorted內部會將可迭代對象中的每一個元素傳遞給這個函數的參數. 根據函數運算的結果進行排序reverse: 是否是倒敘. True: 倒敘, False: 正序

lst = [5,7,6,12,1,13,9,18,5]lst.sort() # sort是list裡面的一個方法print(lst) #[1, 5, 5, 6, 7, 9, 12, 13, 18]ll = sorted(lst) # 內置函數. 返回給你一個新列表 新列表是被排序的print(ll) #[1, 5, 5, 6, 7, 9, 12, 13, 18]l2 = sorted(lst,reverse=True) #倒序print(l2) #[18, 13, 12, 9, 7, 6, 5, 5, 1]

#根據字符串長度給列表排序lst = ['one', 'two', 'three', 'four', 'five', 'six']def f(s): return len(s)l1 = sorted(lst, key=f, )print(l1) #['one', 'two', 'six', 'four', 'five', 'three']

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

lst = ['one','two','three','four','five']for index, el in enumerate(lst,1): # 把索引和元素一起獲取,索引默認從0開始. 可以更改 print(index) print(el)# 1# one# 2# two# 3# three# 4# four# 5# five

all() 可迭代對象中全部是True, 結果才是Trueany() 可迭代對象中有一個是True, 結果就是True

print(all([1,'hello',True,9])) #Trueprint(any([0,0,0,False,1,'good'])) #True

zip() 函數用於將可迭代的對象作為參數, 將對象中對應的元素打包成一個元組, 然後返回由這些元組組成的列表. 如果各個迭代器的元素個數不一致, 則返回列表長度與最短的對象相同

lst1 = [1, 2, 3, 4, 5, 6]lst2 = ['醉鄉民謠', '驢得水', '放牛班的春天', '美麗人生', '辯護人', '被嫌棄的松子的一生']lst3 = ['美國', '中國', '法國', '義大利', '韓國', '日本']print(zip(lst1, lst1, lst3)) #<zip object at 0x00000256CA6C7A88>for el in zip(lst1, lst2, lst3): print(el)# (1, '醉鄉民謠', '美國')# (2, '驢得水', '中國')# (3, '放牛班的春天', '法國')# (4, '美麗人生', '義大利')# (5, '辯護人', '韓國')# (6, '被嫌棄的松子的一生', '日本')

fiter() 過濾 (lamda)

語法:fiter(function. Iterable)

function: 用來篩選的函數. 在lter中會自動的把iterable中的元素傳遞給function. 然後根據function返回的True或者False來判斷是否保留此項數據 , Iterable: 可迭代對象

def func(i): # 判斷奇數 return i % 2 == 1 lst = [1,2,3,4,5,6,7,8,9]l1 = filter(func, lst) #l1是迭代器print(l1) #<filter object at 0x000001CE3CA98AC8>print(list(l1)) #[1, 3, 5, 7, 9]

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

語法 : map(function, iterable)

可以對可迭代對象中的每一個元素進行映射. 分別去執行 function

def f(i): return ilst = [1,2,3,4,5,6,7,]it = map(f, lst) # 把可迭代對象中的每一個元素傳遞給前面的函數進行處理. 處理的結果會返回成迭代器print(list(it)) #[1, 2, 3, 4, 5, 6, 7]

3. 和作用域相關

locals() 返回當前作用域中的名字globals() 返回全局作用域中的名字

def func(): a = 10 print(locals()) # 當前作用域中的內容 print(globals()) # 全局作用域中的內容 print("今天內容很多")func()# {'a': 10}# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': # <_frozen_importlib_external.SourceFileLoader object at 0x0000026F8D566080>, # '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' # (built-in)>, '__file__': 'D:/pycharm/練習/week03/new14.py', '__cached__': None,# 'func': <function func at 0x0000026F8D6B97B8>}# 今天內容很多

4. 和迭代器/生成器相關

range() 生成數據next() 迭代器向下執行一次, 內部實際使用了__ next__()方法返回迭代器的下一個項目iter() 獲取迭代器, 內部實際使用的是__ iter__()方法來獲取迭代器

for i in range(15,-1,-5): print(i)# 15# 10# 5# 0lst = [1,2,3,4,5]it = iter(lst) # __iter__()獲得迭代器print(it.__next__()) #1print(next(it)) #2 __next__() print(next(it)) #3print(next(it)) #4

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

eval() 執行字符串類型的代碼. 並返回最終結果exec() 執行字符串類型的代碼compile() 將字符串類型的代碼編碼. 代碼對象能夠通過exec語句來執行或者eval()進行求值

s1 = input("請輸入a+b:") #輸入:8+9print(eval(s1)) # 17 可以動態的執行代碼. 代碼必須有返回值s2 = "for i in range(5): print(i)"a = exec(s2) # exec 執行代碼不返回任何內容# 0# 1# 2# 3# 4print(a) #None# 動態執行代碼exec("""def func(): print(" 我是周杰倫")""" )func() #我是周杰倫

code1 = "for i in range(3): print(i)"com = compile(code1, "", mode="exec") # compile並不會執行你的代碼.只是編譯exec(com) # 執行編譯的結果# 0# 1# 2code2 = "5+6+7"com2 = compile(code2, "", mode="eval")print(eval(com2)) # 18code3 = "name = input('請輸入你的名字:')" #輸入:hellocom3 = compile(code3, "", mode="single")exec(com3)print(name) #hello

6. 輸入輸出

print() : 列印輸出input() : 獲取用戶輸出的內容

print("hello", "world", sep="*", end="@") # sep:列印出的內容用什麼連接,end:以什麼為結尾#hello*world@

7. 內存相關

hash() : 獲取到對象的哈希值(int, str, bool, tuple). hash算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空間換的時間 比較耗費內存

s = 'alex'print(hash(s)) #-168324845050430382lst = [1, 2, 3, 4, 5]print(hash(lst)) #報錯,列表是不可哈希的  id() : 獲取到對象的內存地址s = 'alex'print(id(s)) #2278345368944

8. 文件操作相關

open() : 用於打開一個文件, 創建一個文件句柄

f = open('file',mode='r',encoding='utf-8')f.read()f.close()

9. 模塊相關

__ import__() : 用於動態加載類和函數

# 讓用戶輸入一個要導入的模塊import osname = input("請輸入你要導入的模塊:")__import__(name) # 可以動態導入模塊

10. 幫 助

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

print(help(str)) #查看字符串的用途

11. 調用相關

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

a = 10print(callable(a)) #False 變量a不能被調用#def f(): print("hello") print(callable(f)) # True 函數是可以被調用的

12. 查看內置屬性

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

print(dir(tuple)) #查看元組的方法

END

來源:網際網路摘抄

相關焦點

  • python的內置函數:int()轉換成整型
    在python中是利用內置函數int()來將一個對象轉換成整型。python的內置函數int的使用1.內置函數int()語法classint(x,base=10),其中x為一個字符串或數字,base來表示x是以什麼進位的數據來表示的。x數字參數可以是整數、浮點數(小數點表示和指數e表示皆可), 字符串參數僅能包含在指定進位下所涵蓋的字符,該參數可省略。
  • Python內置模塊math介紹
    中內置的數學模塊,封裝了許多浮點數的數學運算函數# 可以讓我們查看每個函數的使用方法help(math.pow)# 冪運算:求2的5次方 ,其它寫法 2**5,內置函數pow(2,5),math.pow(2,5)print(2**5)print(pow(2, 5))print(math.pow(
  • python動態添加類對象成員:變量、函數
    :C++類新增成員然而在python中給類對象新增變量或者方法並不需要對原始類定義進行重新修改pythonyu'yan那麼下面就以下圖中的代碼為例,為大家演示如何給python中的類對象動態的添加變量給類對象動態添加方法/函數注意:初學者在理解以下內容之前,需清楚python類中 self 參數的含義和作用,可自行搜索查閱:Python中self的用法!
  • python基礎課程 第5章 奇妙的內建函數
    如果有一天我們被人工智慧製造出來的物體取代,那麼我相信它一定也是一臺內心豐富的電腦。今天我們來講講 python 的常用內建函數,以便於大家在日常編程過程中遇到類似的場景可以直接拿來使用,不用再重複自己了。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    教程大合集,包含python所有就業方向,每套課程均來自市面上主流培訓機構的原版教程,價值都在數百元以上 每套課程均包含:視頻課程+課件+原始碼 重要:建議根據自己工作方向和需求,重點選擇2到3套課程學精,吃透,然後在工作 重要:零基礎小白建議先選擇零基礎全能篇的一套課程學精,然後再根據自 己的需求和規劃選擇學習其他方向課程,學完後一定要多實踐
  • python高階函數:map、filter、reduce的替代品
    什麼是高階函數?高階函數是一種將函數作為參數,或者把函數作為結果返回的函數,map函數、sorted函數就是高階函數的典型例子。map函數在小編以前的文章中做過相應的知識分享。sorted函數是python的內置函數,它的可選參數key用於提供一個函數,它可以將函數應用到各個元素上進行排序。
  • python入門基礎之lambda匿名函數詳解
    python入門基礎之lambda匿名函數詳解剛開始學習python的時候很多人可能對於lambda函數不了解,感覺和def很混亂,下面我來介紹一下lambda函數我從一下幾個方面來介紹lambda:lambda作為一個表達式,定義了一個匿名函數,上例的代碼x,y為入口參數,x+y為函數體。在這裡lambda簡化了函數定義的書寫形式。python允許用lambda關鍵字創造匿名函數。匿名是不需要以標準的方式來聲明,比如說使用 def 語句。(除非賦值給一個局部變量,這樣的對象也不會在任何的名字空間內創建名字,上面的例子中會創建名字。)
  • 乾貨| 完美Python入門基礎知識點總結
    以單下劃線開頭 _foo 的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用 from xxx import * 而導入;以雙下劃線開頭的 __foo 代表類的私有成員;以雙下劃線開頭和結尾的 __foo__ 代表 Python 裡特殊方法專用的標識,如 __init__() 代表類的構造函數。
  • Python2 已終結,入手Python 3,你需要這30個技巧
    這是因為 range 函數隻返回了一個類似 list 的類。由此可見,相較於直接使用 list,使用 range 能節省很多空間:6. 返回多個值Python 的函數可以同時返回多個值,也並不需要使用 dictionary,list 或是類這樣的數據結構。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十七):IF函數代替者
    此系列文章收錄在:數據大宇宙 > 數據處理 > E-pd轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • 高考狀元自述:高中3年函數從不丟分,全靠吃透這份函數大全!
    高考狀元自述:高中3年函數從不丟分,全靠吃透這份函數大全!高中數學最難的兩大知識點就是函數和幾何,函數則是經常出現大題中,想要學好函數,那麼基礎的圖像、性質、運算一定要掌握好。近期就有很多高中生在讓我幫他押題,其實我之前在總結高中數學考試中發現,往往大題就考函數知識,很多填空選擇題也會出現,所以,在高中階段,函數知識點一定要掌握好。函數在數學考試中分值佔比非常的大,還特別的有難度。相信函數是大多數同學的攔路虎。因為函數知識涉及知識點非常的多,如果平時不去練習和總結,那麼是很難掌握吃透的。
  • 16.快速掌握Python列表類:Python列表類函數歸納總結
    Python處理列表的內置函數Python提供了一些內置函數,可以處理列表類的實例。先介紹3個: len(),max(),min()列表類的常用函數列表類本身也有豐富的函數。為了便於記憶,我們對這些函數進行了歸類整理。
  • 寫Python 代碼不可不知的函數式編程技術
    為了檢查對象是否可調用,我們使用內置函數 callable:callable(morning)#truecallable(145)#false.intisnotcallable.數據結構內的函數函數和其他對象一樣,可以存儲在數據結構內部。例如,我們可以創建 int to func 的字典。當 int 是待執行步驟的簡寫時,這就會派上用場。
  • python:pop函數詳解 - 二進位01
    pop函數詳解今天我為大家講解python中pop函數的使用。#python#簡介——pop()函數是python解釋器的內置方法,可作用於列表,字典。用法說明——在builtins.py中找到pop函數。列表:L.pop([index]) -> item -- remove and return item at index (default last).
  • python中類的繼承和多態
    類的繼承類繼承語法:Class 派生類名(基類名): #基類名寫在括號裡派生類成員在繼承關係中,已有的,設計好的類稱為父類或基類,新設計的類稱為子類或派生類。派生類可以繼承父類的公有成員,但是不能繼承其私有成員。
  • 第一卷深入了解Python內置函數,講解內置函數都有什麼作用
    Python內置函數隨著解釋器的運行而創建。在Python的程序中,你可以隨時調用這些函數,不需要定義。print()方法用於列印輸出,最常見的一個函數。file:要寫入的文件對象。返回值:無。如果要判斷兩個類型是否相同推薦使用 isinstance()。
  • 第二卷深入了解Python內置函數,講解內置函數都有什麼作用
    第二卷深入了解Python內置函數,講解內置函數都有什麼作用。主要講類型的轉換,有六個標準的數據類型之間的轉換、ASCII 數值和 Unicode 數值轉換,也有表達式轉換。int() 函數用於將一個字符串或數字轉換為整型。
  • Python趣味打怪:147段簡單代碼完成從入門到大師
    >python 機器學習,包括機器學習的基礎概念和十大核心算法以及Sklearn和Kaggle實戰的小例子PyQt製作GUIFlask前端開發Python數據分析:NumPy, Pandas, Matplotlib, Plotly等教程開篇,先用82段簡單易懂的代碼,介紹了Python
  • 高中數學函數難?最全知識點總結幫你搞定,基礎差也能跟得上
    高中數學函數作為高中數學考試中的佔分比很大的典型題型,學好函數也一直是大多數同學們努力攻克的方向。不知道你們有沒有學姐這種記憶公式時混亂不知道應用哪個、知識點繁多沒有詳細歸納導致需要時找不到的苦惱。其實學好高中數學函數並不難,行百裡者半九十,學習函數首先需要的就是耐心細緻,打牢基礎,靈活運用,接下裡的問題就會迎刃而解。
  • 高中數學:函數與指數函數過關練習試題集含解析,打基礎必練
    高中數學函數是重點內容,整張高考試題試卷函數分數大概佔比在6-80分左右,可以說,函數熟練運用與解決之後,保證數學90分以上自然不是問題。當然,函數有許多難題甚至綜合的壓軸題,只有等基礎知識點掌握好了之後,在此基礎上,再去解決難題。所以,要想拿高分也得深入吃透函數這個版塊。