8個最常用的內建函式,Python小白必備!

程式設計師小城發表於2019-03-16

Python給我們內建了大量功能函式,官方文件上列出了69個,有些是我們是平時開發中經常遇到的,也有一些函式很少被用到,這裡列舉被開發者使用最頻繁的8個函式以及他們的詳細用法。

01 print

print函式是你學Python接觸到的第一個函式,它將物件輸出到標準輸出流,可將任意多個物件列印出來,函式的具體定義:

print(*objectssep=' ', end='\n', file=sys.stdout, flush=False)

objects 是可變引數,所以你可以同時將任意多個物件列印出來:

>>> print(1,2,3) 1 2 3

預設使用空格分隔每個物件,通過指定sep引數可以使用逗號分隔:

>>> print(1,2,3, sep=',') 1,2,3

物件預設輸出的是標準輸出流,你也可以將內容儲存到檔案中:

>>> print(1,2,3, sep=',', file=open("hello.txt", "w")) 1,2,3

02 isinstance

可以用 isinstance 函式判斷某個物件是否屬於某個類的例項,函式的定義:

isinstance(object, classinfo)

classinfo 既可以是單個型別物件,也可以是由多個型別物件組成的元組,只要object的型別是元組中任意一個就返回True,否則返回False:

>>> isinstance(1, (int, str)) True >>> isinstance("", (int, str)) True >>>isinstance(, dict) False

03 range

range函式是個工廠方法,用於構造一個從[start, stop) (不包含stop)之間的連續的不可變的整數序列物件,這個序列功能上和列表非常類似,函式定義:

range([start,] stop [, step]) -> range object

  • start 可選引數,序列的起點,預設是0
  • stop 必選引數,序列的終點(不包含)
  • step 可選引數,序列的步長,預設是1,生成的元素規律是 r[i] = start + step*i

生成0~5的列表:

>>> >>> range(5) range(0, 5) >>> >>> list(range(5)) [0, 1, 2, 3, 4] >>>

預設從0開始,生成0到4之間的5個整數,不包含5,step 預設是1,每次都是在前一次加1。

如果你想將某個操作重複執行n遍,就可以使用for迴圈配置range函式實現:

>>> for i in range(3): ... print("hello python") ... hello python hello python hello python

步長為2:

>>> range(1, 10, 2) range(1, 10, 2) >>> list(range(1, 10, 2)) [1, 3, 5, 7, 9]

起點從1開始,終點10,步長為2,每次都在前一個元素的基礎上加2,構成1到10之間的奇數。

04 enumerate

用於列舉可迭代物件,同時還可以得到每次元素的下表索引值,函式定義:

enumerate(iterable, start=0)

例如:

>>> for index, value in enumerate("python"): ... print(index, value) ... 0 p 1 y 2 t 3 h 4 o 5 n

index 預設從0開始,如果顯式指定引數start,下標索引就從start開始:

>>> for index, value in enumerate("python", start=1): ... print(index, value) ... 1 p 2 y 3 t 4 h 5 o 6 n

如果不使用enumerate函式,要獲取元素的下標索引,則需要更多的程式碼:

def my_enumerate(sequence, start=0): n = start for e in sequence: yield n, e n += 1

>>> for index, value in my_enumerate("python"): print(index, value) 0 p 1 y 2 t 3 h 4 o 5 n

05 len

len 用於獲取容器物件中的元素個數,例如判斷列表是否為空可以用 len 函式:

>>> len([1,2,3]) 3 >>> len("python") 6 >>> if len == 0: pass

並不是所有物件都支援len操作的,例如:

>>> len(True) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'bool' has no len

除了序列物件和集合物件,自定義類必須實現了 __len__ 方法能作用在len函式上。

06 reversed

reversed 反轉序列物件,你可以將字串進行反轉,將列表進行反轉,將元組反轉:

>>> list(reversed([1,2,3])) [3, 2, 1]

07 open

open 函式用於構造檔案物件,構建後可對其進行內容的讀寫操作:

open(file, mode='r', encoding=None)

讀操作:

# 從當前路徑開啟檔案 test.txt, 預設以讀的方式 >>>f = open("test.txt") >>>f.read ...

有時還需要指定編碼格式,否則會遇到亂碼:

f = open("test.txt", encoding='utf8')

寫操作:

>>>f = open("hello.text", 'w', encoding='utf8') >>>f.write("hello python"))

檔案中存在內容時原來的內容將別覆蓋,如果不想被覆蓋,直接將新的內容追加到檔案末尾,可以使用 a 模式:

f = open("hello.text", 'a', encoding='utf8') f.write("!!!")

08 sorted

sroted 是對列表進行重新排序,當然其他可迭代物件都支援重新排放,返回一個新物件,原物件保持不變:

>>> sorted([1,4,2,1,0]) [0, 1, 1, 2, 4]

相關文章