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、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的內部調用是 :
- C.__new__(C, *args, **kargs)
- 然後返回值是類C的實例c
- 確認c是C的實例後
- 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次方) 的值。