歡迎光臨
每天分享高質量文章

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

來自:Python之禪(微訊號:VTtalk)

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

print()

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

print(*objects, sep=' ', end='
', 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"))

isinstance()

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

isinstance(object, classinfo)

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

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

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之間的奇數。

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

len

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


>>> len([1,2,3])
3
>>> len("python")
6

>>> if len([]) == 0:
        pass

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

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

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

reversed()

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

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

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("!!!")

sorted()

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

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

sorted 還有很多更高階的用法,可以參考我之前總結的一篇文章:史上最全關於sorted函式的10條總結


編號616,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

 

Java程式設計

更多推薦25個技術類微信公眾號

涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

    贊(0)

    分享創造快樂