Python學習系列之內置函數總結

1. abs()

描述:返回數字的絕對值,不改變數據類型和數據精度

語法:abs( x )

參數:x -- 數值表達式

返回值:x(數字)的絕對值

2. all()

描述:all() 函數用於判斷給定的可迭代參數 iterable 中的所有元素是否都爲 TRUE,如果是返回 True,否則返回 False。元素除了是 0、空、None、False 外都算 True

語法:all(iterable)

參數:iterable -- 元組或列表

返回值:如果iterable的所有元素不爲0、''、False或者iterable爲空,all(iterable)返回True,否則返回False;注意:空元組、空列表返回值爲True。

3. any()

描述:any() 函數用於判斷給定的可迭代參數 iterable 是否全部爲 False,則返回 False,如果有一個爲 True,則返回 True。也就是可迭代參數中的元素有一個爲True則返回True,否則返回False。元素除了是 0、空、None、FALSE 外都算 TRUE

語法:any(iterable)

參數:iterable -- 元組或列表

返回值:如果都爲空、0、false,則返回false,如果不都爲空、0、false,則返回true

4. basestring()

描述:basestring() 方法是 str 和 unicode 的超類(父類),也是抽象類,因此不能被調用和實例化,但可以被用來判斷一個對象是否爲 str 或者 unicode 的實例,isinstance(obj, basestring) 等價於 isinstance(obj, (str, unicode))

語法:basestring()

參數:

返回值:

5. bin()

描述:bin() 返回一個整數 int 或者長整數 long int 的二進制表示。

語法:bin(x)

參數:x -- int 或者 long int 數字

返回值:字符串

6. bool()

描述:bool() 函數用於將給定參數轉換爲布爾類型,如果沒有參數,返回 False。bool 是 int 的子類。轉換原則是 0、空、None、FALSE 是Flase,其他的是True。

空列表,空集合,空元組,空字典都是False,否則是True。

語法:class bool([x])

參數:x -- 要進行轉換的參數。

返回值:返回 Ture 或 False。

7. bytearray()

描述:bytearray() 方法返回一個新字節數組。這個數組裏的元素是可變的,並且每個元素的值範圍: 0 <= x < 256(一個字節存儲的內容大小)。

語法:class bytearray([source[, encoding[, errors]]])

參數:

  • 如果 source 爲整數,則返回一個長度爲 source 的初始化數組(全0);
  • 如果 source 爲字符串,則按照指定的 encoding 將字符串轉換爲字節序列;
  • 如果 source 爲可迭代類型,則元素必須爲[0 ,255] 中的整數(字符串必須是長度爲1的字符,然後把字符轉爲ASCII碼);
  • 如果 source 爲與 buffer 接口一致的對象,則此對象也可以被用於初始化 bytearray。
  • 如果沒有輸入任何參數,默認就是初始化數組爲0個元素。

返回值:返回 Ture 或 False。

8. callable()

描述:callable() 函數用於檢查一個對象是否是可調用的。如果返回 True,object 仍然可能調用失敗;但如果返回 False,調用對象 object 絕對不會成功。

對於函數、方法、lambda 函式、 類以及實現了 __call__ 方法的類實例, 它都返回 True。

魔術方法:

__call__使實例能夠像函數一樣被調用(可調用對象),同時不影響實例本身的生命週期,可以用來改變實例的內部成員的值(改變類實例的狀態)。 x() 與 x.__call__() 等同。

__init__ 函數的意義等同於類的構造器(同理,__del__等同於類的析構函數)

語法:callable(object)

參數:object -- 對象

返回值:可調用返回 True,否則返回 False。

9. chr()

描述:chr() 用一個範圍在 range(256)內的(就是0~255)整數作參數(ASCII碼對應的數值),返回一個對應的字符。

語法:chr(i)

參數:i -- 可以是10進制也可以是16進制(0x或0X)的形式的數字。

返回值:返回值是當前整數對應的 ASCII 字符。

10. classmethod()

描述:classmethod 修飾符對應的函數不需要實例化,不需要 self 參數,但第一個參數需要是表示自身類的 cls 參數(需要傳入類本身作爲參數,否則訪問出錯),可以來調用類的屬性,類的方法,實例化對象等。將普通方法轉爲類方法,作用同裝飾器@classmethod。在類中調用,將實例方法轉爲類方法。

語法:classmethod(function)

參數:function -- 類中實例方法。

返回值:返回普通函數(實例方法)的類方法。

11. cmp()

描述:cmp(x,y) 函數用於比較2個對象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

數字:數字大小。

字符串:每個字符的ASCII碼的大小。

語法:cmp(x, y)

參數:

  • x -- 數值表達式。
  • y -- 數值表達式。

返回值:如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

12. compile()

描述:compile() 函數將一個字符串編譯爲字節代碼。然後使用exec, eval, single函數執行。

語法:compile(source, filename, mode[, flags[, dont_inherit]])

參數:

  • source -- 字符串或者AST(Abstract Syntax Trees)對象。。
  • filename -- 代碼文件名稱,如果不是從文件讀取代碼則傳遞一些可辨認的值。
  • mode -- 指定編譯代碼的種類。可以指定爲 exec, eval, single。
  • flags -- 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。。
  • flags和dont_inherit是用來控制編譯源碼時的標誌

返回值:返回表達式執行結果。

13. complex()

描述:complex() 函數用於創建一個值爲 real + imag * j 的複數或者轉化一個字符串或數爲複數。如果第一個參數爲字符串,則不需要指定第二個參數。字符串必須是“j”,不能是i。

z=a+bi(a,b均爲實數)的數稱爲複數,其中a稱爲實部,b稱爲虛部,i稱爲虛數單位。當z的虛部等於零時,常稱z爲實數;當z的虛部不等於零時,實部等於零時,常稱z爲純虛數。

語法:class complex([real[, imag]])

參數:

  • real -- int, long, float或字符串;
  • imag -- int, long, float;

返回值:返回一個複數。即使虛部爲0(實數),格式也是虛數。

14. delattr()

描述:delattr 函數用於刪除類實例對象的屬性。再次訪問會出錯。

delattr(x, 'foobar') 相等於 del x.foobar。

語法:delattr(object, name)

參數:

  • object -- 對象。
  • name -- 必須是對象的屬性。

返回值:無。

訪問報錯:

Traceback (most recent call last):
  File "test.py", line 22, in <module>
    print('z = ',point1.z)
AttributeError: Coordinate instance has no attribute 'z'

15. dict()

描述:dict() 函數用於創建一個字典。

語法:

class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)

參數:

  • **kwargs -- 關鍵字
  • mapping -- 元素的容器。
  • iterable -- 可迭代對象。

返回值:返回一個字典。

>>>dict()                        # 創建空字典
{}

>>> dict({'three': 3, 'four': 4})  # 傳一個字典

>>> dict(a='a', b='b', t='t')     # 傳入關鍵字
{'a': 'a', 'b': 'b', 't': 't'}

>>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函數方式來構造字典
{'three': 3, 'two': 2, 'one': 1} 

>>> dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代對象方式來構造字典:包含一個或多個元組的列表
{'three': 3, 'two': 2, 'one': 1}

16. dir()

描述:dir() 函數不帶參數時,返回當前範圍(當前模塊)內的變量、方法和定義的類型列表;帶參數時,返回參數的屬性、方法列表。如果參數包含方法__dir__(),該方法將被調用。如果參數不包含__dir__(),該方法將最大限度地收集參數信息

語法:dir([object])

參數:object -- 對象、變量、類型

返回值:返回模塊的屬性列表

>>>dir()   #  獲得當前模塊的屬性列表
['__builtins__', '__doc__', '__name__', '__package__', 'arr', 'myslice']
>>> dir([ ])    # 查看列表的方法
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

17. divmod()

描述:python divmod() 函數把除數和餘數運算結果結合起來,返回一個包含商和餘數元組(a // b, a % b)。

在 python 2.3 版本之前不允許處理複數。

語法:divmod(a, b)

參數:

  • a: 數字
  • b: 數字

返回值:包含商和餘數元組。

18. enumerate()

描述:enumerate() 函數用於將一個可遍歷的數據對象(如列表、元組或字符串)組合爲一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。

Python 2.3. 以上版本可用,2.6 添加 start 參數。

語法:enumerate(sequence, [start=0])

參數:

  • sequence -- 一個序列、迭代器或其他支持迭代對象。
  • start -- 下標起始位置。

返回值:返回 enumerate(枚舉) 對象。

19. eval()

描述:eval() 函數用來執行一個字符串表達式,並返回表達式的值。

語法:eval(expression[, globals[, locals]])

參數:

  • expression -- 表達式。
  • globals -- 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。
  • locals -- 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。

返回值:返回表達式計算結果。

20. execfile()

描述:execfile() 函數可以用來執行一個文件。

語法:execfile(filename[, globals[, locals]])

參數:

  • filename -- 文件名。
  • globals -- 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。
  • locals -- 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。

返回值:返回文件內內容的執行結果。

python3 刪去了 execfile(),代替方法如下:

with open('test1.py','r') as f:
    exec(f.read())

21. file()

描述:file() 函數用於創建一個 file 對象,它有一個別名叫 open(),更形象一些,它們是內置函數。參數是以字符串的形式傳遞的。

file是類,open纔是內置函數。

語法:file(name[, mode[, buffering]])

參數:

  • name -- 文件名
  • mode -- 打開模式
  • buffering -- 0 表示不緩衝,如果爲 1 表示進行行緩衝,大於 1 爲緩衝區大小。

返回值:文件對象。

22. filter()

描述:filter() 函數用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。

該接收兩個參數,第一個爲函數,第二個爲序列,序列的每個元素作爲參數傳遞給函數進行判別,然後返回 True 或 False,最後將返回 True 的元素放到新列表中。

注意: Pyhton2.7 返回列表,Python3.x 返回迭代器對象。 filter 類對象。filter 類實現了 __iter__ 和 __next__ 方法, 可以看成是一個迭代器, 有惰性運算的特性, 相對 Python2.x 提升了性能, 可以節約內存。

語法:filter(function, iterable)

參數:

  • function -- 判斷函數。
  • iterable -- 可迭代對象。

返回值:返回列表。

判斷整數:math.sqrt(x) % 1 == 0

23. float()

描述:float() 函數用於將整數和字符串轉換成浮點數。(類)

語法:class float([x])

參數:x -- 整數或字符串

返回值:返回浮點數。

24. format()

描述:Python2.6 開始,新增了一種格式化字符串的函數 str.format(),它增強了字符串格式化的功能。

基本語法是通過 {} 和 : 來代替以前的 % 。

format 函數可以接受不限個參數,位置可以不按順序。

語法:str.format(參數)

參數:需要格式化的參數(字符串,整數,浮點數)。

返回值:格式化後的字符串。

>>>"{} {}".format("hello", "world")    # 不設置指定位置,按默認順序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 設置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 設置指定位置
'world hello world'

# 設置參數
print("網站名:{name}, 地址 {url}".format(name="菜鳥教程", url="www.runoob.com"))
 
# 通過字典設置參數
site = {"name": "菜鳥教程", "url": "www.runoob.com"}
print("網站名:{name}, 地址 {url}".format(**site))
 
# 通過列表索引設置參數
my_list = ['菜鳥教程', 'www.runoob.com']
print("網站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必須的

# 傳入對象
class AssignValue(object):
    def __init__(self, value):
        self.value = value
my_value = AssignValue(6)
print('value 爲: {0.value}'.format(my_value))  # "0" 是可選的

格式化數字:

數字 格式 輸出 描述
3.1415926 {:.2f} 3.14 保留小數點後兩位
3.1415926 {:+.2f} +3.14 帶符號保留小數點後兩位
-1 {:+.2f} -1.00 帶符號保留小數點後兩位
2.71828 {:.0f} 3 不帶小數
5 {:0>2d} 05 數字補零 (填充左邊, 寬度爲2)
5 {:x<4d} 5xxx 數字補x (填充右邊, 寬度爲4)
10 {:x<4d} 10xx 數字補x (填充右邊, 寬度爲4)
1000000 {:,} 1,000,000 以逗號分隔的數字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指數記法
13 {:10d}         13 右對齊 (默認, 寬度爲10)
13 {:<10d} 13 左對齊 (寬度爲10)
13 {:^10d}     13 中間對齊 (寬度爲10)
11
'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB
進制

^, <, > 分別是居中、左對齊、右對齊,後面帶寬度, : 號後面帶填充的字符,只能是一個字符,不指定則默認是用空格填充。

+ 表示在正數前顯示 +,負數前顯示 -;  (空格)表示在正數前加空格

b、d、o、x 分別是二進制、十進制、八進制、十六進制。

此外我們可以使用大括號 {} 來轉義大括號,如下實例: 

print ("{} 對應的位置是 {{0}}".format("runoob"))

25. frozenset()

描述:frozenset() 返回一個凍結的集合,凍結後集合不能再添加或刪除任何元素。

語法:class frozenset([iterable])  類

參數:iterable -- 可迭代的對象,比如列表、字典、元組等等。

返回值:返回新的 frozenset 對象,如果不提供任何參數,默認會生成空集合。

返回不可變集合。

26. getattr()

描述:getattr() 函數用於返回一個對象屬性值。

語法:getattr(object, name[, default])

參數:

  • object -- 對象。
  • name -- 字符串,對象屬性(名)。
  • default -- 默認返回值,如果不提供該參數,在沒有對應屬性時,將觸發 AttributeError。

返回值:返回對象屬性值。

27. globals()

描述:globals() 函數會以字典類型返回當前位置的全部全局變量。

語法:globals()

參數:無。

返回值:返回一個全局變量的字典,除了內置變量,還包括所有導入的變量。

{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, 'a': 'runoob', '__package__': None}

Python裏只有2種作用域:全局作用域和局部作用域。全局作用域是指當前代碼所在模塊的作用域,局部作用域是指當前函數或方法所在的作用域。局部作用域裏的代碼可以讀外部作用域(包括全局作用域)裏的變量,但不能更改它。如果想更改它,這裏就要使用global關鍵字了。

具體來看分以下幾種情況:

1. 當你直接在局部域讀取全局變量,可以直接使用。

2. 當你直接在局部域修改全局變量分兩種情況:但是我們一定無法直接修改全局變量。

(1)比如a+=1的情況,是必須要首先聲明變量才能執行。所以會報錯,未聲明該變量。

(2)比如a=1的情況,則系統認爲你聲明a局部變量,所以不會報錯。但並不是修改全局變量。

3. 要想在局部域修改全局變量,可以使用global關鍵字首先聲明該變量,然後修改。

4. 如果提前在局部域聲明瞭該全局變量的同名變量,則覆蓋全局變量(包括讀取和修改)。

在Python 2.x中,閉包只能讀外部函數的變量,而不能改寫它。爲了解決這個問題,Python 3.x引入了nonlocal關鍵字,在閉包內用nonlocal聲明變量,就可以讓解釋器在外層函數中查找變量名。

注意:關鍵字nonlocal:是python3.X中出現的,所以在python2.x中無法直接使用.

28. hasattr()

描述:hasattr() 函數用於判斷對象是否包含對應的屬性。

語法:hasattr(object, name)

參數:

  • object -- 對象。
  • name -- 字符串,屬性名。

返回值:如果對象有該屬性返回 True,否則返回 False。

29. hash()

描述:hash() 用於獲取取一個對象(字符串或者數值等)的哈希值。

語法:hash(object)

參數:

  • object -- 對象;

返回值:返回對象的哈希值。hash 值都是固定長度的。

可以應用於數字、字符串和對象,不能直接應用於 list、set、dictionary。

在 hash() 對對象使用時,所得的結果不僅和對象的內容有關,還和對象的 id(),也就是內存地址有關。

30. help()

描述:help() 函數用於查看函數或模塊用途的詳細說明。

語法:help([object])

參數:

  • object -- 對象;

返回值:返回對象幫助信息。

可以直接傳入字符串,比如'sys','print'。

還可以直接傳入類實例對象,返回該實例對象對應類的幫助信息,直接傳入類實例對象的屬性,返回該實例對象對應類屬性的幫助信息。

31. hex()

描述:hex() 函數用於將10進制整數轉換成16進制,以字符串形式表示。

語法:hex(x)

參數:

  • x -- 10進制整數

返回值:返回16進制數,以字符串形式表示。

32. id()

描述:id() 函數用於獲取對象的內存地址。

語法:id([object])

參數:

  • object -- 對象(包括數字,字符串,布爾變量,類,類示例等任何對象)。

返回值:返回對象的內存地址。

33. input()

描述:

Python3.x 中 input() 函數接受一個標準輸入數據,返回爲 string 類型。

Python2.x 中 input() 相等於 eval(raw_input(prompt)) ,用來獲取控制檯的輸入。raw_input() 將所有輸入作爲字符串看待,返回字符串類型。而 input() 在對待純數字輸入時具有自己的特性,它返回所輸入的數字的類型( int, float )。

注意:Python2 input() 和 raw_input() 這兩個函數均能接收 字符串 ,但 raw_input() 直接讀取控制檯的輸入(任何類型的輸入它都可以接收)。而對於 input() ,它希望能夠讀取一個合法的 python 表達式,即你輸入字符串的時候必須使用引號將它括起來,否則它會引發一個 SyntaxError 。

除非對 input() 有特別需要,否則一般情況下我們都是推薦使用 raw_input() 來與用戶交互。

注意:python3 裏 input() 默認接收到的是 str 類型,不要求是合法python表達式。

語法:input([prompt])

參數:

  • prompt: 提示信息

返回值:返回輸入內容。

34. int()

描述:int() 函數用於將一個字符串或數字轉換爲整型。對於浮點數向下取整。

語法:class int(x, base=10)

參數:

  • x -- 字符串或數字。
  • base -- 進制數,默認十進制。(指定輸入的x的進制,輸出都是十進制)

返回值:返回整型數據。不傳入參數時,得到結果0。

35. isinstance()

描述:isinstance() 函數來判斷一個對象是否是一個已知的類型,類似 type()。

isinstance() 與 type() 區別:

  • type() 不會認爲子類是一種父類類型,不考慮繼承關係。

  • isinstance() 會認爲子類是一種父類類型,考慮繼承關係。

如果要判斷兩個類型是否相同推薦使用 isinstance()。

語法:isinstance(object, classinfo)

參數:

  • object -- 實例對象。
  • classinfo -- 可以是直接或間接類名、基本類型或者由它們組成的元組(多個選項)。

返回值:如果對象的類型與參數二的類型(classinfo)相同則返回 True,否則返回 False。

type(A()) == A

type()函數返回對象類型,但不考慮父類(繼承)關係。

基本類型包括:int,float,bool,complex,str(字符串),list,dict(字典),set,tuple。

除了基本類型就是類(系統類或自定義)。

36. issubclass()

描述:issubclass() 方法用於判斷參數 class 是否是類型參數 classinfo 的子類。

語法:issubclass(class, classinfo)

參數:

  • class -- 類。
  • classinfo -- 類。

返回值:如果 class 是 classinfo 的子類返回 True,否則返回 False。

兩個類之間的比較。

37. iter()

描述:iter() 函數用來生成迭代器。

語法:iter(object[, sentinel])

參數:

  • object -- 支持迭代的集合對象。
  • sentinel -- 如果傳遞了第二個參數,則參數 object 必須是一個可調用的對象(如,函數),此時,iter 創建了一個迭代器對象,每次調用這個迭代器對象的__next__()方法時,都會調用 object。

返回值:迭代器對象。

38. len()

描述:len() 方法返回對象(字符、列表、元組、字典、集合等)長度或項目個數。

語法:len( s )

參數:

  • s -- 對象(字符、列表、元組、字典、集合等)。

返回值:返回對象長度。

39. list()

描述:list() 方法用於將元組轉換爲列表。(元組和列表相同包括索引和訪問,除了不能修改。而集合和字典都無法使用索引進行訪問)

注:元組與列表是非常類似的,區別在於元組的元素值不能修改,元組是放在括號中,列表是放於方括號中。

語法:list( tup )

參數:

  • tup -- 要轉換爲列表的元組。

返回值:返回列表。

40. locals()

描述:locals() 函數會以字典類型返回當前位置(當前模塊或下層局部域,比如類內,函數內等)的全部局部變量。

語法:locals()

參數:

返回值:返回字典類型的局部變量。

函數的話包括函數的形參及所有定義的其他變量。

41. long()

描述:long() 函數將數字或字符串轉換爲一個長整型。

語法:class long(x, base=10)

參數:

  • x -- 字符串或數字。
  • base -- 可選,進制數,默認十進制。

返回值:返回長整型數。輸出帶有L結尾。

42. map()

描述:map() 會根據提供的函數對指定序列做映射(處理)。

第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。

語法:map(function, iterable, ...)

參數:

  • function -- 函數
  • iterable -- 一個或多個序列

返回值:

Python 2.x 返回列表。

Python 3.x 返回迭代器。

# 提供了兩個列表,對相同位置的列表數據進行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

43. max()

描述:max() 方法返回給定參數的最大值,參數可以爲序列。

語法:max( x, y, z, .... )

參數:

  • x -- 數值表達式。
  • y -- 數值表達式。
  • z -- 數值表達式。

返回值:返回給定參數的最大值。

1 . 列表數字

直接比較大小即可。

2. 字符串

>>> a='1,2,3,4'
>>> type(a)             #類型爲字符串
<type 'str'>
>>> max(a)              #max 返回了最大值
'4'

3. 列表裏面是元組構成元素

按照元素裏面元組的第一個元素的排列順序,輸出最大值(如果第一個元素相同,則比較第二個元素,輸出最大值)據推理是按ascii碼進行排序的,類似於字符串的比較。

4. 比較字典

比較字典裏面的最大值,會輸出最大的鍵值。因爲鍵值不重複,所以不會出現元組重複的情況。(注:字典中如果鍵重複,後一個會覆蓋前一個)

44. memoryview()

描述:memoryview() 函數返回給定參數的內存查看對象(Momory view)。

所謂內存查看對象,是指對支持緩衝區協議的數據進行包裝,在不需要複製對象基礎上允許Python代碼訪問。

語法:memoryview(obj)

參數:

  • obj -- 對象

返回值:返回元組列表。

Python2

>>>v = memoryview('abcefg')
>>> v[1]
'b'
>>> v[-1]
'g'
>>> v[1:4]
<memory at 0x77ab28>
>>> v[1:4].tobytes()
'bce'

Python3

>>>v = memoryview(bytearray("abcefg", 'utf-8'))
>>> print(v[1])
98
>>> print(v[-1])
103
>>> print(v[1:4])
<memory at 0x10f543a08>
>>> print(v[1:4].tobytes())
b'bce'

 

45. min()

描述:min() 方法返回給定參數的最小值,參數可以爲序列。

語法:min( x, y, z, .... ) 

參數:

  • x -- 數值表達式。
  • y -- 數值表達式。
  • z -- 數值表達式。

返回值:返回給定參數的最小值。

可變參數:多個數值或數值表達式,輸出這幾個參數的最小值

多個序列,以序列的形式輸出,將單個序列的最小值組成一個序列。

46. next()

描述:next() 返回迭代器的下一個項目。

語法:next(iterator[, default])

參數:

  • iterator -- 可迭代對象
  • default -- 可選,用於設置在沒有下一個元素時返回該默認值,如果不設置,又沒有下一個元素則會觸發 StopIteration 異常。

返回值:返回迭代器的元素。

47. object()

描述:返回一個新的無特徵對象,object是所有類的基類,有所有Python類實例的通用方法,該函數不接受任何參數。

注意:object沒有__dict__方法,所以你不能給某個object類的實例分配任意屬性。

其他類可直接設置屬性:

#定義一個類A
>>> class A:
    pass
>>> a = A()
>>> a.name = 'kim' # 能設置屬性

語法:o = object()

參數:無。

返回值:返回一個object的實例對象。

>>> dir(object)
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']

python的__slots__設計是爲了節省內存,也可以用於構造安全的類、如果一個類使用了__slots__那麼它的屬性就不再自由了。 

slots__設置非自由屬性 

class person(object):
    __slots__=('Name','Age')

    def __init__(self,name,age):
        self.Name=name #注意,__init__的執行在__slots__之後;所以就算在__init__方法裏也是不能執行self.ID=007的。
        self.Age=age

if__name__=='__main__':
      p=person('jiangle',100)
      p.ID=7 #這裏會報錯,由於我們使用了__slots__來聲明屬性,所以屬性再也不是自由的了。

__new__ and __init__
新式類都有一個__new__的靜態方法,它的原型是object.__new__(cls[, ...]) 
cls是一個類對象,當調用C(*args, **kargs)來創建一個類C的實例時,python的內部調用是 :

  1. C.__new__(C, *args, **kargs)
  2. 然後返回值是類C的實例c
  3. 確認c是C的實例後
  4. python再調用C.__init__(c, *args, **kargs)來初始化實例c

所以調用一個實例c = C(2),實際執行的代碼爲:
 

c = C.__new__(C, 2) 
if isinstance(c, C):     
    C.__init__(c, 23)#__init__第一個參數要爲實例對象 

object.__new__()創建的是一個新的,沒有經過初始化的實例。當重寫__new__方法時,可以不用使用裝飾符@staticmethod指明它是靜態函數,解釋器會自動判斷這個方法爲靜態方法。如果需要重新綁定C.__new__方法時,只要在類外面執行C.__new__ = staticmethod(yourfunc)就可以了。

此外,如果(新式)類中沒有重寫__new__()方法,即在定義新式類時沒有重新定義__new__()時,Python默認是調用該類的直接父類的__new__()方法來構造該類的實例,如果該類的父類也沒有重寫__new__(),那麼將一直按此規矩追溯至object的__new__()方法,因爲object是所有新式類的基類。 

__repr__ and __str__

print(someobj)會調用someobj.str(), 如果str沒有定義,則會調用someobj.repr().

48. oct()

描述:oct() 函數將一個整數轉換成8進制字符串。

語法:oct(x)

參數:

  • x -- 整數。

返回值:返回8進制字符串。

以0開頭。

49. open()

描述:open() 函數用於打開一個文件,創建一個 file 對象,相關的方法纔可以調用它進行讀寫。

語法:open(name[, mode[, buffering]])

參數:

  • name : 一個包含了你要訪問的文件名稱的字符串值(文件路徑)。

  • mode : mode 決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式爲只讀(r)。

  • buffering : 如果 buffering 的值被設爲 0,就不會有緩存。如果 buffering 的值取 1,訪問文件時會緩存行。如果將 buffering 的值設爲大於 1 的整數,表明了這就是的緩存區的緩衝大小。如果取負值,緩存區的緩衝大小則爲系統默認。

返回值:返回file對象。

模式 描述
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。
r+ 打開一個文件用於讀寫。文件指針將會放在文件的開頭。
rb+ 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。
w 打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb 以二進制格式打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
w+ 打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb+ 以二進制格式打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
a 打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
ab 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
a+ 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。
ab+ 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。

 

+多一個功能。

file 對象方法

  • file.read([size]):size 未指定則返回整個文件,如果文件大小 >2 倍內存則有問題,f.read()讀到文件尾時返回""(空字串)。

  • file.readline():返回一行。

  • file.readlines([size]) :返回包含size行的列表, size 未指定則返回全部行。

  • for line in f: print line :通過迭代器訪問。

  • f.write("hello\n"):如果要寫入字符串以外的數據,先將他轉換爲字符串。

  • f.tell():返回一個整數,表示當前文件指針的位置(就是到文件頭的比特數)。

  • f.seek(偏移量,[起始位置]):用來移動文件指針。

    • 偏移量: 單位爲比特,可正可負
    • 起始位置: 0 - 文件頭, 默認值; 1 - 當前位置; 2 - 文件尾
  • f.close() 關閉文件

50. ord()

描述:ord() 函數是 chr() 函數(對於8位的ASCII字符串)或 unichr() 函數(對於Unicode對象)的配對函數,它以一個字符(長度爲1的字符串)作爲參數,返回對應的 ASCII 數值,或者 Unicode 數值,如果所給的 Unicode 字符超出了你的 Python 定義範圍,則會引發一個 TypeError 的異常。

語法:ord(c)

參數:c -- 字符(長度爲1的字符串)

返回值:對應的十進制整數

51. pow() 

描述:pow() 方法返回 x^y(x的y次方) 的值。

語法:

math 模塊 pow() 方法的語法:
math.pow( x, y )

內置的 pow() 方法
pow(x, y[, z])

函數是計算x的y次方,如果z存在,則再對結果進行取模,其結果等效於pow(x,y) %z

pow(x,y) 等價於 x**y:

pow(x,y,z) 等價於 x**y%z:

注意:pow() 通過內置的方法直接調用,math 模塊會把參數轉換爲 float,內置方法不修改參數類型:py2和py3相同。

math.pow(11.2,3.2)
Out[39]: 2277.7060352240815
math.pow(100, 2)
Out[40]: 10000.0

pow(11.2,3.2)
Out[42]: 2277.7060352240815
pow(100, 2)
Out[43]: 10000

pow(x,y,z) 當 z 這個參數不存在時 x,y 不限制是否爲 float 類型, 而當使用第三個參數的時候要保證前兩個參數只能爲整數。

>>> pow(11.2,3.2)
2277.7060352240815
>>> pow(11.2,3.2,2)   # 結果報錯
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pow() 3rd argument not allowed unless all arguments are integers

參數:

  • x -- 數值表達式。
  • y -- 數值表達式。
  • z -- 數值表達式。

返回值:返回 x^y(x的y次方) 的值。

 

參考:https://docs.python.org/zh-cn/3.7/library/functions.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章