天天看點

python内置函數it_Python内置函數

一.内置函數大全

二.内置函數詳解

1、abs(x)

功能:取數的絕對值

>>> abs(-1) #取-1的絕對值

1

2、all(iterable)

功能:可疊代對象中的元素都為True,則傳回True(元素除了是 0、空、False 外都算 True)。

>>> all([0,1,3]) #有0,說明為False

False

>>> all([1,-5,6]) #負數也是為True

True

3、any(iterable)

功能:可疊代對象中的元素中,有一個為True,則傳回True(元素除了是 0、空、False 外都算 True)。

>>> any([0,1,2]) #有一個為True,則為True

True

>>> any([]) #空清單為False

False

4、ascii(object)

功能:類似repr()函數,把記憶體對象變成一個可列印的字元串格式

>>> ascii([1,2,3,4])

'[1, 2, 3, 4]'

5、bin(x)

功能:把一個整數轉換成二進制

>>> bin(300) #把300轉換成二進制

'0b100101100'

>>> bin(1)

'0b1'

6、bool([x])

功能:傳回一個布爾值,空清單為假,不為空為真

>>> bool([]) #空清單

False

>>> bool([1,2]) #不為空清單

True

>>> bool([0])

True

7、bytearray[source[, encoding[, errors]]]

功能:位元組數組,并且可以修改二進制的位元組

>>> b = bytearray("abcd",encoding="utf-8") #聲明一個位元組數組

>>> b[0] #列印第一個元素的ascii值,也就是'a'對應的ascii值

97

>>> b[0] = 100 #修改時,隻能指派對應字元的ascii值

>>> b

bytearray(b'dbcd') #發現位元組數組值被修改

8、bytes([source[, encoding[, errors]]])

功能:把字元串轉換成位元組

>>> b = bytes("abcd",encoding="utf-8") #聲明位元組

>>> b

b'abcd'

>>> b[0] #通路到'a'字元對應的ASCII值

97

>>> b[0]=100 #不可以修改裡面的值,不然會報錯

Traceback (most recent call last):

File "", line 1, in

TypeError: 'bytes' object does not support item assignment

9、callable(object)

功能:判斷一個對象是否可以被調用,隻有在後面有括号的,表示可以調用,比如:函數,類。

>>> callable([]) #清單後面不加括号

False

>>> def sayhi():pass #定義一個函數

>>> callable(sayhi) #函數調用,後面需要加括号

True

10、chr(i)

功能:通過ascii的值,找到對應的字元

>>> chr(97)

'a'

11、ord(c)

功能:根據字元,找到對應的ascii值

>>> ord('a')

97

12、classmethod(function)

功能:類方法,這個到後續談到類的時候再說。

13、compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

功能:用于把代碼編譯的一個過程,這個基本用不到

>>> code = """1+3/2*6"""

>>> py_object = compile(code,'','eval') #把代碼轉換為字元串

>>> eval(py_object) #執行

10.0

14、complex([real[, imag]])

功能:傳回一個複數,我們幾乎用不到。

>>> complex('1+2j')

(1+2j)

15、delattr(object, name)

功能:類那邊使用的,先不care。

16、dict(**kwarg)、dict(mapping, **kwarg)、dict(iterable, **kwarg)

功能:傳回一個字典

>>> dict() #定義一個字典

{}

>>> dict(name='zhangqigao',age=18) #傳入非固定關鍵字參數

{'name': 'zhangqigao', 'age': 18}

>>> dict([('name','zhangqigao'),('age',18)]) #傳入一個清單

{'name': 'zhangqigao', 'age': 18}

>>> dict([['name','zhangqigao'],['age',18]]) #傳入一個清單

{'name': 'zhangqigao', 'age': 18}

17、dir([object])

功能:看一個對象有哪些方法

>>> name = []

>>> dir(name) #顯示name下的所有的方法

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__',

'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__',

'__iadd__', '__imul__', '__init__', '__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']

18、divmod(a,b)

功能:地闆除,獲得一個元組,元組第一個元素是商,第二個元素是餘數。

>>> divmod(5,2)

(2, 1) #2是商,1是餘數

19、enumerate(iterable,start=0)

功能:周遊一個可疊代對象,擷取索引和對應的元素的

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']

>>> list(enumerate(seasons))

[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

>>> list(enumerate(seasons, start=1))

[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

20、eval(expression, globals=None, locals=None)

功能:把字典類型的字元串變成字典,把一個整數類型的字元變成int類型,或者加減乘除這種簡單轉換成表達式。

>>> eval('1') #字元類型轉換成int類型

1

>>> eval("1+3/2*6") #字元串轉換為表達式

10.0

21、exec(object[, globals[, locals]])

功能:有語句的和複雜的語句的字元串轉換成表達式

code = '''

def timmer(func): #timmer(test1) func=test1

def deco(*args,**kwargs):

res = func(*args,**kwargs) #run test1()

return res

return deco

@timmer

def test1():

print("in the test1")

return "from the test1"

res = test1()

print(res)

'''

exec(code)

#輸出

in the test1

from the test1

22、filter(function, iterable)

功能:通過function過濾條件,去擷取iterable中你想要的資料。

>>> res = filter(lambda n:n>5,range(10))

>>> res #得到一個疊代器

>>> for i in res:

print(i)

6

7

8

9

23、map(function, iterable)

功能:對傳入的每一個值進行處理,處理完了再傳回,再把原來的結果覆寫掉。

>>> res = map(lambda n:n*2,range(5)) #n*2是處理方式

>>> res

>>> for i in res:

print(i)

2

4

6

8

24、reduce(function,iterable)

功能:把一組可疊代序列通過function函數操作,元素之間相加或者相乘操作。

>>> from functools import reduce

>>> res = reduce(lambda x,y:x+y,range(10)) #x+y的值賦給x,rang(10)中的每個元素賦給y

>>> res

45

>>> res = reduce(lambda x,y:x*y,range(1,10)) #x*y的值賦給x,rang(10)中的每個元素賦給y

>>> res

362880

25、float([x])

功能:把一個浮點類型的字元串轉換為浮點類型的資料。

>>> float('+1.23')

1.23

>>> float(' -12345\n')

-12345.0

>>> float('1e-003')

0.001

>>> float('+1E6')

1000000.0

>>> float('-Infinity')

-inf

26、format(value[, format_spec])

功能:格式化字元串,詳細使用:猛擊這裡

27、frozenset([iterable])

功能:把集合變成一個不可變的集合

>>> res = frozenset([1,2,3,4,3])

>>> res

frozenset({1, 2, 3, 4}) #去重的,不可變的集合

>>> dir(res) #沒有可變的方法

['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__',

'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__iter__', '__le__',

'__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__',

'__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__',

'__subclasshook__', '__xor__', 'copy', 'difference', 'intersection', 'isdisjoint', 'issubset',

'issuperset', 'symmetric_difference', 'union']

注:set()是可變的

28、getattr(object, name[, default])

功能:這邊是類那邊的,後續再講。

29、globals()

功能:傳回目前這個python檔案中的所有變量的key-value,變量是key,值是value

print(globals())

#輸出

{'__spec__': None, '__name__': '__main__', '__file__': 'D:/PycharmProjects/pyhomework

/day4/内置函數/内置函數.py', '__doc__': None, '__package__': None, '__loader__':

<_frozen_importlib_external.SourceFileLoader object at 0x0000000000695B00>,

'__cached__': None, '__builtins__':

注:可以判斷一個檔案中的變量是否存在,而globals()隻能列印全局變量

30、hash(object)

功能:反射出一個對象的對應的hash值。

>>> hash('zhangqigao')

2313972277536963491

>>> hash(255)

255

>>> hash('a')

6806508886604307842

這個有什麼用呐?

先看下面的圖:

python内置函數it_Python内置函數

看上面的圖我們知道,如果一張表中5百萬個使用者資訊,以我們現在的知識,隻能用for循環去查找,那樣的話,效率會很低。那我們怎麼辦呢?我們可以這樣,就是把每一個姓名對應有一對應的值,然後通過對應的key值去定位,key值是放在一個清單中,當我們去查找某個key值時,可以折半查找,這樣大大減少了查找時間,提高效率,這種也叫二分法查找,後面會有對應的部落格專門寫這一塊的。

31、help([object])

功能:顯示對象的幫助資訊

>>> res = [] #定義一個清單

>>> help(res) #列印幫助資訊

Help on list object:

class list(object)

| list() -> new empty list

| list(iterable) -> new list initialized from iterable's items

|

| Methods defined here:

|

.....

32、hex(x)

功能:把一個數字轉成16進制

>>> hex(255)

'0xff'

>>> hex(10)

'0xa'

33、id(object)

功能:傳回對象的記憶體位址

>>> id('zhangqigao')

50993136 #'zhangqigao'這個字元串的記憶體位址

34、input([prompt])

功能:輸入字元串

>>> s = input('--> ')

--> Monty Python's Flying Circus #輸入的内容

>>> s

"Monty Python's Flying Circus"

35、int(x)

功能:把其他資料類型強制轉換成int類型

>>> int('10')

10

36、isinstance(object, classinfo)

功能:這個在疊代器中使用,詳情:猛擊這裡

37、issubclass(class, classinfo)

功能:判斷是否是一個子類,這個後續講到類那邊會講

38、iter(object[, sentinel])

功能:把一個普通序列轉成疊代器

with open('mydata.txt') as fp:

for line in iter(fp.readline, ''):

process_line(line)

39、len(s)

功能:計算序列或者字元串的長度

>>> len("zhangqigao") #字元串的長度

10

>>> len([1,2,3,4,5]) #清單的長度

5

40、list([iterable])

功能:把其他序列轉換成一個清單

>>> list((1,2,3,4,5)) #把一個元組轉換為一個清單

[1, 2, 3, 4, 5]

41、locals()

功能:列印局部變量

def test():

locals_var = 333

print(locals()) #隻列印局部變量

test()

print(globals().get("locals_var")) #隻能列印全局變量

#輸出

{'locals_var': 333}

None

42、max(iterable, *[, key, default])

功能:傳回清單中的最大值

>>> max([1,2,3,4,5])

5

43、min(iterable, *[, key, default])

功能:傳回清單中的最小值

>>> min([1,2,3,4,5])

1

44、memoryview(obj)

功能:先忘記它,暫時用不到,用到詳細說明

45、next(iterator[, default])

功能:傳回疊代器的下一個值,相當于__next__()方法,如果疊代最後一個資料之後沒有值了,則會抛出一個StopIteration異常

>>> a = iter([1,2])

>>> next(a)

1

>>> next(a)

2

>>> next(a)

Traceback (most recent call last):

File "", line 1, in

StopIteration

46、object

功能:python中一切皆對象,每一個對象都有它的屬性和方法

47、oct(x)

功能:把一個數轉成8進制

>>> oct(7)

'0o7'

>>> oct(8)

'0o10'

>>> oct(15)

'0o17'

>>> oct(16)

'0o20'

48、open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

功能:檔案操作,詳細介紹:猛擊這裡

49、pow(x, y[, z])

功能:傳回多少次幂

>>> pow(2,3) #相當于2**3

8

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

功能:列印

>>> print("zhangqigao")

zhangqigao

51、property(fget=None, fset=None, fdel=None, doc=None)

功能:這個倒後面的類再說。

52、range(stop)、range(start, stop[, step])

功能:生成一個疊代器

>>> range(5)

range(0, 5)

>>> range(1,5)

range(1, 5)

>>> range(1,5,2)

range(1, 5, 2)

53、repr(object)

功能:把代碼轉成字元串對象,沒什麼用,這邊忽略

54、reversed(seq)

功能:反轉一個序列,跟清單中的reversed方法是一樣的

>>> reversed([1,2,3,4,5])

#變成一個疊代器

>>> for i in reversed([1,2,3,4,5]):

... print(i)

...

5

4

3

2

1

55、round(number[, ndigits])

功能:保留float資料類型位數

>>> round(1.23344,2) #保留兩位

1.23

56、set([iterable])

功能:集合,詳細請見:猛擊這裡

57、setattr(object, name, value)

功能:這個是講到類那邊才用到的

58、slice(stop),slice(start, stop[, step])

功能:序列的切片

>>> a = [1,2,3,4,5,6]

>>> a[slice(1,3)]

[2, 3]

>>> a[1:3]

[2, 3]

59、sorted(iterable[, key][, reverse])

功能:對一個序列進行排序

>>> sorted([5,3,2,6,8])

[2, 3, 5, 6, 8]

>>> a = {1:5,6:8,3:6}

>>> sorted(a) #預設是按key排序

[1, 3, 6]

>>> sorted(a.items()) #按key排序

[(1, 5), (3, 6), (6, 8)]

>>> sorted(a.items(),key = lambda x:x[1]) #按value排序

[(1, 5), (3, 6), (6, 8)]

60、 str(object)

功能:把其他資料類型轉換為字元串

>>> str(1)

'1'

61、sum(iterable[, start])

功能:求一個清單的和

>>> sum([1,2,3,4,5,6])

21

62、super([type[, object-or-type]])

功能:這個是類的繼承,後續會講

63、tuple([iterable])

功能:把其他序列轉換為一個元組

>>> tuple([1,2,3,4,5])

(1, 2, 3, 4, 5)

64、type(object) 、type(name, bases, dict)

功能:檢視一個對象的資料類型

>>> a = 'zhangqigao'

>>> type(a)

注:一切資料類型都是有type()方法産生,它是一切資料類型的根。

65、vars([object])

功能:傳回對象的所有屬性

66、zip(*iterables)

功能:zip中文意思是拉鍊的意思,把兩個序列一一對應起來。

>>> a = [1,2,3,4]

>>> b=['a','b','c','d']

>>> for i in zip(a,b):

... print(i)

...

(1, 'a')

(2, 'b')

(3, 'c')

(4, 'd')

注:如果a的元素比b的多,則按照元素最少的那個來

67、__import__(name, globals=None, locals=None, fromlist=(), level=0)

功能:當導入的子產品是一個字元串時,用__import__()

>>> import os

>>> __import__('os')

68、hasattr()

69、staticmethod()