Python內建函式簡析

2021-07-24 18:18:59 字數 4934 閱讀 2820

參考python built-in function

輸入:整數或者浮點數

輸出:絕對值

all(iterable)

如果輸入的可迭代物件中的元素都為true(或者這個物件沒有元素),那麼函式返回true

>>> list=

>>> all(list)

true

any(iterable)如果可迭代物件中的元素存在為true,那麼函式返回true,如果物件為沒有元素,那麼返回false

>>> list=

>>> any(list)

false

bin(x)將乙個數轉換為二進位制字串,如果x不是int,那麼需要定義__index__()方法返回乙個整數

>>> bin(10)

'0b1010'

>>>bin(12.21)

traceback (most recent call last):

file "", line

1, in

typeerror: 'float' object cannot be interpreted as

aninteger

class bool([x])判斷x是否符合以下條件,返回false

repr(object)

參考

>>> repr('hello')

"'hello'"

>>> repr('你你好')

"'你你好'"

ascii(object)作用和repr()函式相似,返回乙個字串,字串包含object的可列印表達,但是非ascii字元會使用\x,\u,\u轉義

>>> ascii('你好')

"'\\u4f60\\u597d'"

>>> ascii('hello')

"'hello'"

eval(expression,globals=none,locals=none)
>>> x = 1

>>> eval('x+1')

2

>>> locals()

>>> globals()

class bytearray([source[,encoding[,errors]]]建立乙個位元組陣列物件,可以方便的使用一些函式,bytes and bytearray operations

>>> c=bytearray('你好','utf-8')

>>> c

bytearray(b'\xe4\xbd

\xa0\xe5\xa5\xbd')

class bytes([source[,encoding[,errors]]]返回乙個不可變位元組序列

>>> c=bytes('你好','utf-8')

>>> c

b'\xe4\xbd

\xa0\xe5\xa5\xbd'

callable(object)如果object可以呼叫,那麼返回true

>>> def printhello():

... print("hello")

...>>> callable(printhello)

true

chr(i)返回i(範圍是0~1,114,111(0x10ffff))對應的字元

>>> chr(8364)

'€'

如果出現這種情況請設定環境編碼格式

>>> chr(8364)

'\u20ac'

ord(c)返回字元的unicode整數值

>>> ord('歐')

27431

classmethod(function)使類可以直接呼叫該函式

>>> class c:

... @classmethod

... def f(self):

... print("hello")

>>>

>>> c.f()

hello

>>> class b:

... def f(self):

... print("hello")

...>>> b.f()

traceback (most recent call last):

file "", line 1, in

typeerror: f() missing 1 required positional argument: 'self'

compile(source,filename,mode,flag=0,dont_inherit=false,optimize=-1)編譯source成乙個可以被exec()和eval()執行的code object

>>> str = '[i for i in range(10)]'

>>> a=compile(str,'','eval')

>>> eval(a)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

delattr(object, name)刪除object的屬性

divmod(a,b)

返回商和餘數,餘數和b同號

>>> divmod(8,4)

(2, 0)

>>> divmod(8,-2.5)

(-4.0, -2.0)

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

filter(function,iterable)建立乙個迭代器,item for item in iterable if function(item)

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

>>> list(filter(lambda x : not x%2 ,a))

[2, 4]

相反:itertools.filte***lse(predicate,iterable)如果函式返回false,則被新增

>>> 

import itertools

>>> list(itertools.filte***lse(lambda x:x%2,range(10)))

[0, 2, 4, 6, 8]

class float([x])

>>> float('+1.23')

1.23

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

-12345.0

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

0.001

>>> float('+1e6')

1000000.0

>>> float('-infinity')

-inf

>>> float()

0.0

zip(*iterables)按照最短原則依次連線各個序列的元素,返回乙個元組迭代器

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

[(1, 1, 1), (2, 2, 2)]

>>> list(zip('nihao','wodhi'))

[('n', 'w'), ('i', 'o'), ('h', 'd'), ('a', 'h'), ('o', 'i')]

在傳入序列前使用*操作符,作用相當於把序列的元素傳入

>>> x = [1, 2, 3]

>>> y = [4, 5, 6]

>>>zip(*zip(x, y))

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

>zip((1,4),(2,5),(3,6))

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

Python原始碼學習 內建型別簡析並簡析int物件

本文環境python2.5系列 參考書籍位於include object.h中 typedef struct object pyobject typedef struct pyvarobject define pyobject head pyobject head extra py ssize t ...

Python之函式簡析 二

python之函式 本節重點理解一下map,reduce,filter,lambda,sorted函式的用法 map函式例項 usr bin env python coding utf8 time 2017 11 2 9 32 author hantong file func.py map函式,返回...

strtok函式簡析

官方的strtok函式,用來通過分隔字元 不支援字串,傳入的串中每個字元單獨當分隔符,如下例子組合的如123會處理1而23會被跳過 返回分隔的串的首位址 比如呼叫strtok abc123def 123456 返回值是指向abc的指標 下次要獲得 def 需要呼叫strtok null,123456...