1. 程式人生 > >python常用函式總結~

python常用函式總結~

python也算學了一段時間,有些函式很常用但用的時候還是會忘,現在總結記錄一下python裡面很實用的並經常用到的內建函式(不用匯入其他模組)。

help() 檢視線上幫助,可以是各種型別的資料結構或者它們的方法函式。

>>> help(list)
Help on class list in module builtins:

class list(object)
 |  list() -> new empty list
 |  list(iterable) -> new list initialized from iterable's items
 |
 |  Methods defined here:
 |
 |  __add__(self, value, /)
 |      Return self+value.
 |
 |  __contains__(self, key, /)
 |      Return key in self.

print() 1.直接輸出任何型別(數值,字串,布林,列表,元組,字典······)


>>> print(100)
100
>>> print('hello python')
hello python
>>> L=[1,2,'p']
>>> print(L)
[1, 2, 'p']
>>> r={'x':5,'y':10}
>>> print(r)
{'x': 5, 'y': 10}

2.格式化輸出(類似c中的printf)

>>> s='hello'
>>> x=len(s)
>>> print('the length of %s is %d' % (s,x))
the length of hello is 5

(1)%字元:標記轉換說明符的開始

(2)轉換標誌:-表示左對齊;+表示在轉換值之前要加上正負號;“”(空白字元)表示正數之前保留空格;0表示轉換值若位數不夠則用0填充

(3)最小欄位寬度:轉換後的字串至少應該具有該值指定的寬度。如果是*,則寬度會從值元組中讀出。

(4) 點(.)後跟精度值:如果轉換的是實數,精度值就表示出現在小數點後的位數。如果轉換的是字串,那麼該數字就表示最大欄位寬度。如果是*,那麼精度將從元組中讀出

>>> pi = 3.141592653  
>>> print('%10.3f' % pi) #欄位寬10,精度3  
     3.142  
>>> print("pi = %.*f" % (3,pi)) #用*從後面的元組中讀取欄位寬度或精度  
pi = 3.142  
>>> print('%010.3f' % pi) #用0填充空白  
000003.142  
>>> print('%-10.3f' % pi) #左對齊  
3.142       
>>> print('%+f' % pi) #顯示正負號  
+3.141593  

3.print預設換行,若不想換行,可在輸出語句後加上end=‘sep’,sep為分隔符。

input() 輸入函式,預設輸入的是字串,可通過強轉函式轉換 int() 把括號內的型別強轉為整形 float() 把括號內的型別強轉為浮點型 str() 把括號內的型別強轉為字元型 list() 轉為列表型別 tuple() 轉為元組型別

>>> a=input('請輸入:')
請輸入:10000
>>> print('a的型別為',type(a),a)
a的型別為 <class 'str'> 10000
>>> a
'10000'
>>> int(a)
10000

abs() 取絕對值函式,適用整型和浮點型

>>> abs(-10.1)
10.1

len() 求序列長度(字串,字典,列表,元組)

>>> a=[1,2,3,4]
>>> len(a)
4
>>> s='hello world'
>>> len(s)

max() 取可迭代物件中的最大值 min() 取可迭代物件中的最小值

>>> max(1,2,3,4)
4
>>> max('jaljfla')
'l'
>>> max([1,2,3,4,7])
7
>>> min([1,2,3,4,7])
1

sum() 獲得的迭代物件(列表,元組,集合)的和

>>> sum([0,1,2])
3
>>> sum([0,1,2],3) #加完後再加3
6

divmod() 取模函式,求商和餘數

>>> divmod(54,4)
(13, 2)

pow(a,b(,c)) a的b次方,如果c存在,再對c取模

>>> pow(2,5)
32
>>> pow(2,5,3)
2

bin() 轉換為二進位制數 oct() 轉換為8進位制數 hex() 轉換為16進位制數 (轉換後為字元型)

>>> hex(25)
'0x19'

all() 可迭代物件元素都為真時返回True,否則返回False any() 可迭代物件元素只要有一個為真就返回True,否則返回False

>>> all([1,2,3])
True
>>> all([0,1,2])
False
>>> any([0,1,2])
True

dir() 檢視某個型別所有方法

>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

type() 檢視資料型別

>>> a={1:2}
>>> type(a)
<class 'dict'> #字典型別

ord() 以字元作為引數,返回其ASCll或者Unicode數值 chr() 返回數值對應的字元

>>>ord('a')
97
>>> chr(97)
'a'

round(a(,b)) 返回四捨五入後a的值,b控制小數點位數

>>> round(100.001656,3)
100.002
>>> round(100.000056,3)
100.0

however,在實際使用中發現round函式並不總是如上所說的四捨五入。如:

>>> round(2.355,2)
2.35

因為該函式對於返回的浮點數並不是按照四捨五入的規則來計算,而會收到計算機表示精度的影響(具體的我也不太清楚?)。

sorted() 對所有可迭代物件排序

>>> L=[4,2,3,1]  #列表排序
>>> sorted(L)
[1, 2, 3, 4]
>>> k={'b':2,'d':1,'a':4}
>>> L=sorted(k.items())  #按字典的key排序
>>> L
[('a', 4), ('b', 2), ('d', 1)]
>>> L=sorted(k.items(),key=lambda x:x[1])  #按字典的value排序
>>> L
[('d', 1), ('b', 2), ('a', 4)]
>>> L=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))   # 利用cmp函式
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> sorted(L, key=lambda x:x[1])               # 利用key
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

zip() 將多個列表拼接成一個元組列表

>>> list_1=[1,2,3,4]
>>> list_2=['a','b']
>>> z=zip(list_1,list_2)  #z本身時zip型別
>>> for i in z:
...     print(i,end='\t')
(1, 'a')        (2, 'b')

更新中···