日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python小白必備的8個最常用的內(nèi)置函數(shù)

 heii2 2019-02-18

題圖:Photo by Markus Spiske on Unsplash

Python給我們內(nèi)置了大量功能函數(shù),官方文檔上列出了69個,有些是我們是平時開發(fā)中經(jīng)常遇到的,也有一些函數(shù)很少被用到,這里列舉被開發(fā)者使用最頻繁的8個函數(shù)以及他們的詳細用法

print()

print函數(shù)是你學Python接觸到的第一個函數(shù),它將對象輸出到標準輸出流,可將任意多個對象打印出來,函數(shù)的具體定義:

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

objects 是可變參數(shù),所以你可以同時將任意多個對象打印出來

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

默認使用空格分隔每個對象,通過指定sep參數(shù)可以使用逗號分隔

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

對象默認輸出的是標準輸出流,你也可以將內(nèi)容保存到文件中

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

isinstance()

可以用 isinstance 函數(shù)判斷某個對象是否屬于某個類的實例,函數(shù)的定義

isinstance(object, classinfo)

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

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

range()

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

range([start,] stop [, step]) -> range object
  • start 可選參數(shù),序列的起點,默認是0

  • stop 必選參數(shù),序列的終點(不包含)

  • step 可選參數(shù),序列的步長,默認是1,生成的元素規(guī)律是 r[i] = start + step*i

生成0~5的列表

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

默認從0開始,生成0到4之間的5個整數(shù),不包含5,step 默認是1,每次都是在前一次加1

如果你想將某個操作重復執(zhí)行n遍,就可以使用for循環(huán)配置range函數(shù)實現(xiàn)

>>> 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之間的奇數(shù)。

enumerate()

用于枚舉可迭代對象,同時還可以得到每次元素的下表索引值,函數(shù)定義:

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開始,如果顯式指定參數(shù)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函數(shù),要獲取元素的下標索引,則需要更多的代碼:

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 用于獲取容器對象中的元素個數(shù),例如判斷列表是否為空可以用 len 函數(shù)


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

除了序列對象和集合對象,自定義類必須實現(xiàn)了 __len__ 方法能作用在len函數(shù)上

reversed()

reversed() 反轉(zhuǎn)序列對象,你可以將字符串進行反轉(zhuǎn),將列表進行反轉(zhuǎn),將元組反轉(zhuǎn)

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

open()

open 函數(shù)用于構造文件對象,構建后可對其進行內(nèi)容的讀寫操作

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'))

文件中存在內(nèi)容時原來的內(nèi)容將別覆蓋,如果不想被覆蓋,直接將新的內(nèi)容追加到文件末尾,可以使用 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函數(shù)的10條總結


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多