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')
更新中···