Python高級編程——11.內置函數大全


Build-in Function,啓動python解釋器,輸入dir(__builtins__)可以看到很多python解釋器啓動後默認加載的屬性和函數,這些函數稱之爲內建函數, 這些函數因爲在編程時使用較多,cpython解釋器用c語言實現了這些函數,啓動解釋器 時默認加載。


下面對以上的函數一一介紹並且示例:

1.abs()

描述

abs() 函數返回數字的絕對值。


語法

以下是 abs() 方法的語法:

abs( x )

參數

  • x -- 數值表達式,可以是整數,浮點數,複數。

返回值

函數返回 x(數字)的絕對值,如果參數是一個複數,則返回它的大小。


實例

以下展示了使用 abs() 方法的實例:

#!/usr/bin/python3

print ("abs(-40) : ", abs(-40))
print ("abs(100.10) : ", abs(100.10))

以上實例運行後輸出結果爲:

abs(-40) :  40
abs(100.10) :  100.1

2.all()

描述

all() 函數用於判斷給定的可迭代參數 iterable 中的所有元素是否不爲 0、''、False 或者 iterable 爲空,如果是返回 True,否則返回 False。

函數等價於:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

Python 2.5 以上版本可用。

語法

以下是 all() 方法的語法:

all(iterable)

參數

  • iterable -- 元組或列表。

返回值

如果iterable的所有元素不爲0、''、False或者iterable爲空,all(iterable)返回True,否則返回False;

注意:空元組、空列表返回值爲True,這裏要特別注意。


實例

以下展示了使用 all() 方法的實例:

>>>all(['a','b','c','d'])# 列表list,元素都不爲空或0True>>>all(['a','b','','d'])# 列表list,存在一個爲空的元素False>>>all([0,12,3])# 列表list,存在一個爲0的元素False >>>all(('a','b','c','d'))# 元組tuple,元素都不爲空或0True>>>all(('a','b','','d'))# 元組tuple,存在一個爲空的元素False>>>all((0,12,3))# 元組tuple,存在一個爲0的元素False >>>all([])# 空列表True>>>all(())# 空元組True

3.any()

描述

any() 函數用於判斷給定的可迭代參數 iterable 是否全部爲空對象,如果都爲空、0、false,則返回 False,如果不都爲空、0、false,則返回 True。

函數等價於:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

Python 2.5 以上版本可用。

語法

以下是 any() 方法的語法:

any(iterable)

參數

  • iterable -- 元組或列表。

返回值

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


實例

以下展示了使用 any() 方法的實例:

>>>any(['a','b','c','d'])# 列表list,元素都不爲空或0True >>>any(['a','b','','d'])# 列表list,存在一個爲空的元素True >>>any([0,'',False])# 列表list,元素全爲0,'',falseFalse >>>any(('a','b','c','d'))# 元組tuple,元素都不爲空或0True >>>any(('a','b','','d'))# 元組tuple,存在一個爲空的元素True >>>any((0,'',False))# 元組tuple,元素全爲0,'',falseFalse >>>any([])# 空列表False >>>any(())# 空元組False

4.ascii()

描述

ascii() 函數類似 repr() 函數, 返回一個表示對象的字符串, 但是對於字符串中的非 ASCII 字符則返回通過 repr() 函數使用 \x, \u 或 \U 編碼的字符。 生成字符串類似 Python2 版本中 repr() 函數的返回值。


語法

以下是 ascii() 方法的語法:

ascii(object)

參數

  • object -- 對象。

返回值

返回字符串。


實例

以下展示了使用 ascii() 方法的實例:

>>> ascii('runoob')
"'runoob'"

5.bin()

描述

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

語法

以下是 bin() 方法的語法:

bin(x)

參數

  • x -- int 或者 long int 數字

返回值

字符串。


實例

以下展示了使用 bin 函數的實例:

>>>bin(10)'0b1010'>>>bin(20)'0b10100'


6.bool()

描述

bool() 函數用於將給定參數轉換爲布爾類型,如果沒有參數,返回 False。

bool 是 int 的子類。

語法

以下是 bool() 方法的語法:

class bool([x])

參數

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

返回值

返回 Ture 或 False。


實例

以下展示了使用 bool 函數的實例:

>>>bool()False>>>bool(0)False>>>bool(1)True>>>bool(2)True>>>issubclass(bool,int)# bool 是 int 子類True


7.bytearray()

描述

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

語法

bytearray()方法語法:

class bytearray([source[, encoding[, errors]]])

參數

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

返回值

返回新字節數組。

實例

以下實例展示了 bytearray() 的使用方法:

>>>bytearray()bytearray(b'')>>>bytearray([1,2,3])bytearray(b'\x01\x02\x03')>>>bytearray('runoob','utf-8')bytearray(b'runoob')>>>

8.bytes()

描述

bytes 函數返回一個新的 bytes 對象,該對象是一個 0 <= x < 256 區間內的整數不可變序列。它是 bytearray 的不可變版本。

語法

以下是 bytes 的語法:

class bytes([source[, encoding[, errors]]])

參數

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

返回值

返回一個新的 bytes 對象。


實例

以下展示了使用 bytes 的實例:

實例

>>>a =bytes([1,2,3,4])>>>ab'\x01\x02\x03\x04'>>>type(a)<class'bytes'>>>>>>>a = bytes('hello','ascii')>>>>>>ab'hello'>>>type(a)<class'bytes'>>>>


9.callable()

描述

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

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

語法

callable()方法語法:

callable(object)

參數

  • object -- 對象

返回值

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

實例

以下實例展示了 callable() 的使用方法:

>>>callable(0)False>>>callable("runoob")False >>> def add(a,b):...returna +b... >>>callable(add)# 函數返回 TrueTrue>>>classA:# 類...defmethod(self):...return0... >>>callable(A)# 類返回 TrueTrue>>>a =A()>>>callable(a)# 沒有實現 __call__, 返回 FalseFalse>>>classB:...def__call__(self):...return0... >>>callable(B)True>>>b = B()>>>callable(b)# 實現 __call__, 返回 TrueTrue

10.chr()

描述

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

語法

以下是 chr() 方法的語法:

chr(i)

參數

  • i -- 可以是10進制也可以是16進制的形式的數字。

返回值

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


實例

以下展示了使用 chr() 方法的實例:

>>>printchr(0x30),chr(0x31),chr(0x61)# 十六進制01a>>>printchr(48),chr(49),chr(97)# 十進制01a

11.classmethod

描述

classmethod 修飾符對應的函數不需要實例化,不需要 self 參數,但第一個參數需要是表示自身類的 cls 參數,可以來調用類的屬性,類的方法,實例化對象等。

語法

classmethod 語法:

classmethod

參數

  • 無。

返回值

返回函數的類方法。

實例

以下實例展示了 classmethod 的使用方法:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
classA(object):
       bar =1
      deffunc1(self):
               print('foo')

       @classmethod
       deffunc2(cls):
               print('func2')
                print(cls.bar) 
                cls().func1()# 調用 foo 方法 A.func2()# 不需要實例化

輸出結果爲:

func2
1
foo


12.compile()

描述

compile() 函數將一個字符串編譯爲字節代碼。

語法

以下是 compile() 方法的語法:

compile(source, filename, mode[, flags[, dont_inherit]])

參數

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

返回值

返回表達式執行結果。


實例

以下展示了使用 compile 函數的實例:

>>>str ="for i in range(0,10): print(i)" >>>c = compile(str,'','exec')# 編譯爲字節代碼對象 >>> c<codeobject <module>at0x10141e0b0,file"",line1>>>>exec(c)0123456789>>>str = "3 * 4 + 5">>>a =compile(str,'','eval')>>>eval(a)17


13.complex()

描述

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

語法

complex 語法:

class complex([real[, imag]])

參數說明:

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

返回值

返回一個複數。

實例

以下實例展示了 complex 的使用方法:

>>>complex(1,2)(1 +2j) >>>complex(1)# 數字(1 +0j) >>>complex("1")# 當做字符串處理(1 +0j)# 注意:這個地方在"+"號兩邊不能有空格,也就是不能寫成"1 + 2j",應該是"1+2j",否則會報錯>>>complex("1+2j")(1 + 2j)

14.delattr()


描述

delattr 函數用於刪除屬性。

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

語法

setattr 語法:

delattr(object, name)

參數

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

返回值

無。

實例

以下實例展示了 delattr 的使用方法:

#!/usr/bin/python# -*- coding: UTF-8 -*-class Coordinate:x = 10y = -5z = 0point1 = Coordinate()print('x =',point1.x)print('y = ',point1.y)print('z = ',point1.z)delattr(Coordinate,'z')print('--刪除 z 屬性後--')print('x = ',point1.x)print('y = ',point1.y)# 觸發錯誤print('z =',point1.z)

輸出結果:

('x = ', 10)
('y = ', -5)
('z = ', 0)
--刪除 z 屬性後--
('x = ', 10)
('y = ', -5)
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() 函數用於創建一個字典。

語法

dict 語法:

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

參數說明:

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

返回值

返回一個字典。

實例

以下實例展示了 dict 的使用方法:

>>>dict()# 創建空字典{}>>> 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 語法:

dir([object])

參數說明:

  • object -- 對象、變量、類型。

返回值

返回模塊的屬性列表。

實例

以下實例展示了 dir 的使用方法:

>>>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 內置函數 Python 內置函數

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

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

函數語法

divmod(a, b)

參數說明:

  • a: 數字
  • b: 數字

實例

>>>divmod(7,2)(3,1)>>>divmod(8,2)(4,0)>>>divmod(1+2j,1+0.5j)((1+0j),1.5j)

18.enumerate()

描述

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

語法

以下是 enumerate() 方法的語法:

enumerate(sequence, [start=0])

參數

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

返回值

返回 enumerate(枚舉) 對象。


實例

以下展示了使用 enumerate() 方法的實例:

>>>seasons =['Spring','Summer','Fall','Winter']>>>list(enumerate(seasons))[(0,'Spring'),(1,'Summer'),(2,'Fall'),(3,'Winter')]>>>list(enumerate(seasons,start=1))# 小標從 1 開始[(1,'Spring'),(2,'Summer'),(3,'Fall'),(4,'Winter')]

普通的 for 循環

>>>i =0>>> seq =['one','two','three']>>>for elementin seq:...print(i,seq[i])...i += 1...0 one1two2three

for 循環使用 enumerate

>>>seq =['one','two','three']>>>for i,element inenumerate(seq):...print(i,seq[i])...0 one1two2three>>>


19.eval()

描述

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

語法

以下是 eval() 方法的語法:

eval(expression[, globals[, locals]])

參數

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

返回值

返回表達式計算結果。


實例

以下展示了使用 eval() 方法的實例:

>>>x =7>>> eval('3 * x')21>>>eval('pow(2,2)')4>>>eval('2 + 2')4


20.exec()

描述

exec 執行儲存在字符串或文件中的 Python 語句,相比於 eval,exec可以執行更復雜的 Python 代碼。

語法

以下是 exec 的語法:

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

參數

  • object:必選參數,表示需要被指定的Python代碼。它必須是字符串或code對象。如果object是一個字符串,該字符串會先被解析爲一組Python語句,然後在執行(除非發生語法錯誤)。如果object是一個code對象,那麼它只是被簡單的執行。
  • globals:可選參數,表示全局命名空間(存放全局變量),如果被提供,則必須是一個字典對象。
  • locals:可選參數,表示當前局部命名空間(存放局部變量),如果被提供,可以是任何映射對象。如果該參數被忽略,那麼它將會取與globals相同的值。

返回值

exec 返回值永遠爲 None。


實例

以下展示了使用 exec 的實例:

實例 1

>>>exec('print("Hello World")')HelloWorld# 單行語句字符串>>>exec("print ('runoob.com')")runoob.com# 多行語句字符串>>> exec ("""for i in range(5):... print ("iter time: %d" % i)...""")itertime: 0itertime: 1itertime: 2itertime: 3itertime: 4

實例 2

x =10expr ="""z = 30sum = x + y + zprint(sum)"""deffunc():y = 20exec(expr)exec(expr, {'x':1, 'y':2})exec(expr, {'x':1, 'y':2}, {'y':3, 'z':4})func()

輸出結果:

60
33
34


21.fiflter()

描述

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

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

語法

以下是 filter() 方法的語法:

filter(function, iterable)

參數

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

返回值

返回列表。


實例

以下展示了使用 filter 函數的實例:

過濾出列表中的所有奇數:

#!/usr/bin/python# -*- coding: UTF-8 -*-def is_odd(n):return n %2 == 1newlist = filter(is_odd,[1,2, 3,4, 5,6, 7,8, 9,10])print(newlist)

輸出結果 :

[1, 3, 5, 7, 9]

過濾出1~100中平方根是整數的數:

#!/usr/bin/python# -*- coding: UTF-8 -*-import mathdefis_sqr(x):return math.sqrt(x) % 1 == 0newlist = filter(is_sqr,range(1,101))print(newlist)

輸出結果 :

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


22.float()

描述

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

語法

float()方法語法:

class float([x])

參數

  • x -- 整數或字符串

返回值

返回浮點數。

實例

以下實例展示了 float() 的使用方法:

>>>float(1)1.0>>>float(112)112.0>>>float(-123.6)-123.6>>>float('123')# 字符串123.0


23.format()


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

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

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

實例

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

也可以設置參數:

實例

#!/usr/bin/python# -*- coding: UTF-8 -*-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" 是可選的

輸出結果爲:

網站名:菜鳥教程, 地址 www.runoob.com
網站名:菜鳥教程, 地址 www.runoob.com
網站名:菜鳥教程, 地址 www.runoob.com

也可以向 str.format() 傳入對象:

實例

#!/usr/bin/python# -*- coding: UTF-8 -*-class AssignValue(object):def __init__(self,value):self.value =valuemy_value =AssignValue(6)print('value 爲: {0.value}'.format(my_value))# "0" 是可選的

輸出結果爲:

value 爲: 6

數字格式化

下表展示了 str.format() 格式化數字的多種方法:

>>> print("{:.2f}".format(3.1415926));
3.14
數字 格式 輸出 描述
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 分別是二進制、十進制、八進制、十六進制。

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

實例

#!/usr/bin/python# -*- coding: UTF-8 -*-print ("{} 對應的位置是 {{0}}".format("runoob"))

輸出結果爲:

runoob 對應的位置是 {0}

24.frozenset()

描述

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

語法

frozenset() 函數語法:

class frozenset([iterable])

參數

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

返回值

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

實例

以下實例展示了 frozenset() 的使用方法:

>>>a =frozenset(range(10))# 生成一個新的不可變集合>>> afrozenset([0,1, 2,3, 4,5, 6,7, 8,9])>>>b = frozenset('runoob') >>> bfrozenset(['b','r','u','o','n'])# 創建不可變集合>>>


25.getattr()

描述

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

語法

getattr 語法:

getattr(object, name[, default])

參數

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

返回值

返回對象屬性值。

實例

以下實例展示了 getattr 的使用方法:

>>>classA(object):...bar = 1... >>>a = A()>>>getattr(a,'bar')# 獲取屬性 bar 值1>>>getattr(a,'bar2')# 屬性 bar2 不存在,觸發異常Traceback(mostrecent calllast):File "<stdin>",line 1,in <module>AttributeError:'A'object hasno attribute'bar2'>>>getattr(a,'bar2',3)# 屬性 bar2 不存在,但設置了默認值3>>>

26.globals()

描述

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

語法

globals() 函數語法:

globals()

參數

返回值

返回全局變量的字典。

實例

以下實例展示了 globals() 的使用方法:

>>>a='runoob'>>>print(globals())# globals 函數返回一個全局變量的字典,包括所有導入的變量。{'__builtins__': <module'__builtin__'(built-in)>,'__name__':'__main__','__doc__':None, 'a':'runoob','__package__':None}


27.hasattr()

描述

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

語法

hasattr 語法:

hasattr(object, name)

參數

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

返回值

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

實例

以下實例展示了 hasattr 的使用方法:

#!/usr/bin/python# -*- coding: UTF-8 -*-class Coordinate:x = 10y = -5z = 0point1 = Coordinate()print(hasattr(point1,'x'))print(hasattr(point1,'y'))print(hasattr(point1,'z'))print(hasattr(point1,'no'))# 沒有該屬性


28.hash()

描述

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

語法

hash 語法:

hash(object)

參數說明:

  • object -- 對象;

返回值

返回對象的哈希值。

實例

以下實例展示了 hash 的使用方法:

>>>hash('test')# 字符串2314058222102390712>>>hash(1)# 數字1>>>hash(str([1,2,3]))# 集合1335416675971793195>>>hash(str(sorted({'1':1})))# 字典7666464346782421378>>>


29.help()

描述

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

語法

help 語法:

help([object])

參數說明:

  • object -- 對象;

返回值

返回對象幫助信息。

實例

以下實例展示了 help 的使用方法:

>>>help('sys')# 查看 sys 模塊的幫助……顯示幫助信息…… >>>help('str')# 查看 str 數據類型的幫助……顯示幫助信息…… >>>a =[1,2,3]>>>help(a)# 查看列表 list 幫助信息……顯示幫助信息…… >>>help(a.append)# 顯示list的append方法的幫助……顯示幫助信息……


30.hex()

描述

hex() 函數用於將10進制整數轉換成16進制整數。

語法

hex 語法:

hex(x)

參數說明:

  • x -- 10進制整數

返回值

返回16進制整數。

實例

以下實例展示了 hex 的使用方法:

>>>hex(255)'0xff'>>>hex(-42)'-0x2a'>>>hex(1L)'0x1L'

31.id()

描述

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

語法

id 語法:

id([object])

參數說明:

  • object -- 對象。

返回值

返回對象的內存地址。

實例

以下實例展示了 id 的使用方法:

>>>a ='runoob'>>>id(a)4531887632>>>b = 1>>>id(b)140588731085608



32.input()

python input() 相等於 eval(raw_input(prompt)) ,用來獲取控制檯的輸入。

raw_input() 將所有輸入作爲字符串看待,返回字符串類型。而 input() 在對待純數字輸入時具有自己的特性,它返回所輸入的數字的類型( int, float )。

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

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

注意:python3 裏 input() 默認接收到的是 str 類型。

函數語法

input([prompt])

參數說明:

實例

input() 需要輸入 python 表達式

>>>a =input("input:")input:123# 輸入整數>>> type(a)<type'int'># 整型>>> a =input("input:")input:"runoob"# 正確,字符串表達式>>> type(a)<type'str'># 字符串>>> a =input("input:")input:runoob# 報錯,不是表達式Traceback(mostrecent calllast):File "<stdin>",line 1,in <module>File "<string>",line 1,in <module>NameError:name 'runoob'is notdefined<type'str'>

raw_input() 將所有輸入作爲字符串看待

>>>a =raw_input("input:")input:123>>>type(a)<type'str'># 字符串>>> a =raw_input("input:")input:runoob>>>type(a)<type'str'># 字符串>>>


33.int()

描述

int() 函數用於將一個字符串會數字轉換爲整型。

語法

以下是 int() 方法的語法:

class int(x, base=10)

參數

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

返回值

返回整型數據。


實例

以下展示了使用 int() 方法的實例:

>>>int()# 不傳入參數時,得到結果00>>>int(3)3>>>int(3.6)3>>>int('12',16)# 如果是帶參數base的話,12要以字符串的形式進行輸入,12 爲 16進制18>>>int('0xa',16)10 >>> int('10',8)8

34.isinstance()

描述

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

isinstance() 與 type() 區別:

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

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

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

語法

以下是 isinstance() 方法的語法:

isinstance(object, classinfo)

參數

  • object -- 實例對象。
  • classinfo -- 可以是直接或間接類名、基本類型或者有它們組成的元組。

返回值

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


實例

以下展示了使用 isinstance 函數的實例:

>>>a =2>>> isinstance(a,int)True>>>isinstance (a,str)False>>>isinstance (a,(str,int,list))# 是元組中的一個返回 TrueTrue

type() 與 isinstance()區別:

classA: passclass B(A):pass isinstance(A(),A)# returns Truetype(A()) == A # returns Trueisinstance(B(),A)# returns Truetype(B()) == A # returns False


35.issubclass()

描述

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

語法

以下是 issubclass() 方法的語法:

issubclass(class, classinfo)

參數

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

返回值

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


實例

以下展示了使用 basestring 函數的實例:

#!/usr/bin/python# -*- coding: UTF-8 -*-class A:passclassB(A):pass print(issubclass(B,A))# 返回 True

36.iter()

描述

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

語法

以下是 iter() 方法的語法:

iter(object[, sentinel])

參數

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

返回值

迭代器對象。

實例

>>>lst =[1,2, 3]>>>for iin iter(lst):...print(i)...123


37.len()

描述

Python len() 方法返回對象(字符、列表、元組等)長度或項目個數。

語法

len()方法語法:

len( s )

參數

  • s -- 對象。

返回值

返回對象長度。

實例

以下實例展示了 len() 的使用方法:

>>>str ="runoob">>>len(str)# 字符串長度6>>>l = [1,2,3,4,5]>>>len(l)# 列表元素個數5

38.list()

描述

list() 方法用於將元組轉換爲列表。

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

語法

list()方法語法:

list( seq )

參數

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

返回值

返回列表。

實例

以下實例展示了 list()函數的使用方法:

#!/usr/bin/python3

aTuple = (123, 'Google', 'Runoob', 'Taobao')
list1 = list(aTuple)
print ("列表元素 : ", list1)

str="Hello World"
list2=list(str)
print ("列表元素 : ", list2)

以上實例輸出結果如下:

列表元素 :  [123, 'Google', 'Runoob', 'Taobao']
列表元素 :  ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']


39.locals()

描述

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

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

語法

locals() 函數語法:

locals()

參數

返回值

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

實例

以下實例展示了 locals() 的使用方法:

>>>defrunoob(arg):# 兩個局部變量:arg、z... z = 1...print (locals())... >>> runoob(4){'z':1, 'arg':4} # 返回一個名字/值對的字典>>>


40.map()

描述

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

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

語法

map() 函數語法:

map(function, iterable, ...)

參數

  • function -- 函數,有兩個參數
  • iterable -- 一個或多個序列

返回值

返回列表。

實例

以下實例展示了 reduce() 的使用方法:

>>>defsquare(x) :# 計算平方數... returnx ** 2... >>>map(square,[1,2,3,4,5])# 計算列表和:1+2+3+4+5[1,4, 9,16, 25]>>>map(lambdax: x **2, [1,2, 3,4, 5])# 使用 lambda 匿名函數[1,4, 9,16, 25]# 提供了兩個列表,對相同位置的列表數據進行相加>>>map(lambdax, y:x + y,[1,3, 5,7, 9],[2,4, 6,8, 10])[3,7, 11,15, 19]


41.max()

描述

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


語法

以下是 max() 方法的語法:

max( x, y, z, .... )

參數

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

返回值

返回給定參數的最大值。

實例

以下展示了使用 max() 方法的實例:

#!/usr/bin/python3

print ("max(80, 100, 1000) : ", max(80, 100, 1000))
print ("max(-20, 100, 400) : ", max(-20, 100, 400))
print ("max(-80, -20, -10) : ", max(-80, -20, -10))
print ("max(0, 100, -400) : ", max(0, 100, -400))

以上實例運行後輸出結果爲:

max(80, 100, 1000) :  1000
max(-20, 100, 400) :  400
max(-80, -20, -10) :  -10
max(0, 100, -400) :  100

42.memoryview()

描述

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

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

語法

memoryview 語法:

memoryview(obj)

參數說明:

  • obj -- 對象

返回值

返回元組列表。

實例

以下實例展示了 memoryview 的使用方法:

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


43.min()

描述

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


語法

以下是 min() 方法的語法:

min( x, y, z, .... )

參數

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

返回值

返回給定參數的最小值。

實例

以下展示了使用 min() 方法的實例:

#!/usr/bin/python3

print ("min(80, 100, 1000) : ", min(80, 100, 1000))
print ("min(-20, 100, 400) : ", min(-20, 100, 400))
print ("min(-80, -20, -10) : ", min(-80, -20, -10))
print ("min(0, 100, -400) : ", min(0, 100, -400))

以上實例運行後輸出結果爲:

min(80, 100, 1000) :  80
min(-20, 100, 400) :  -20
min(-80, -20, -10) :  -80
min(0, 100, -400) :  -400


44.next()

描述

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

語法

next 語法:

next(iterator[, default])

參數說明:

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

返回值

返回對象幫助信息。

實例

以下實例展示了 next 的使用方法:

#!/usr/bin/python# -*- coding: UTF-8 -*-# 首先獲得Iterator對象:it =iter([1,2, 3,4, 5])# 循環:whileTrue: try:# 獲得下一個值: x =next(it)print(x)except StopIteration:# 遇到StopIteration就退出循環break



45.oct()

描述

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

語法

oct 語法:

oct(x)

參數說明:

  • x -- 整數。

返回值

返回8進制字符串。

實例

以下實例展示了 oct 的使用方法:

>>>oct(10)'012'>>>oct(20)'024'>>>oct(15)'017'>>>

46.open()

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

更多文件操作可參考:Python 文件I/O

函數語法

open(name[, mode[, buffering]])

參數說明:

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

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

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

不同模式打開文件的完全列表:

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

file 對象方法

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

file.readline() 返回一行

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

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

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

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

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

  • 偏移量:單位:比特,可正可負
  • 起始位置:0-文件頭,默認值;1-當前位置;2-文件尾

f.close() 關閉文件

實例

測試文件 test.txt,內容如下:

RUNOOB1
RUNOOB2
>>>f =open('test.txt')>>>f.read()'RUNOOB1\nRUNOOB2\n'


47.ord()

描述

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

語法

以下是 ord() 方法的語法:

ord(c)

參數

  • c -- 字符。

返回值

返回值是對應的十進制整數。


實例

以下展示了使用 ord() 方法的實例:

>>>ord('a')97>>>ord('b')98>>>ord('c')99

48.pow()

描述

pow() 方法返回 xy(x的y次方) 的值。


語法

以下是 math 模塊 pow() 方法的語法:

import math

math.pow( x, y )

內置的 pow() 方法

pow(x, y[, z])

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

注意:pow() 通過內置的方法直接調用,內置方法會把參數作爲整型,而 math 模塊則會把參數轉換爲 float。


參數

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

返回值

返回 xy(x的y次方) 的值。

實例

以下展示了使用 pow() 方法的實例:

#!/usr/bin/python3
import math   # 導入 math 模塊

print ("math.pow(100, 2) : ", math.pow(100, 2))
# 使用內置,查看輸出結果區別
print ("pow(100, 2) : ", pow(100, 2))
print ("math.pow(100, -2) : ", math.pow(100, -2))
print ("math.pow(2, 4) : ", math.pow(2, 4))
print ("math.pow(3, 0) : ", math.pow(3, 0))

以上實例運行後輸出結果爲:

math.pow(100, 2) :  10000.0
pow(100, 2) :  10000
math.pow(100, -2) :  0.0001
math.pow(2, 4) :  16.0
math.pow(3, 0) :  1.0

49.print()

描述

print() 方法用於打印輸出,最常見的一個函數。

print 在 Python3.x 是一個函數,但在 Python2.x 版本不是一個函數,只是一個關鍵字。

語法

以下是 print() 方法的語法:

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

參數

  • objects -- 複數,表示可以一次輸出多個對象。輸出多個對象時,需要用 , 分隔。
  • sep -- 用來間隔多個對象,默認值是一個空格。
  • end -- 用來設定以什麼結尾。默認值是換行符 \n,我們可以換成其他字符串。
  • file -- 要寫入的文件對象。

返回值

無。


實例

以下展示了使用 print 函數的實例:

Python3 下測試

>>>print(1)1 >>> print("Hello World")Hello World >>>a = 1>>>b = 'runoob'>>>print(a,b)1runoob >>> print("aaa""bbb")aaabbb>>>print("aaa","bbb")aaabbb>>> >>> print("www","runoob","com",sep=".")# 設置間隔符www.runoob.com


50.property()

描述

property() 函數的作用是在新式類中返回屬性值。

語法

以下是 property() 方法的語法:

class property([fget[, fset[, fdel[, doc]]]])

參數

  • fget -- 獲取屬性值的函數
  • fset -- 設置屬性值的函數
  • fdel -- 刪除屬性值函數
  • doc -- 屬性描述信息

返回值

返回新式類屬性。

實例

定義一個可控屬性值 x

classC(object):def __init__(self):self._x =None defgetx(self):return self._xdef setx(self,value):self._x =value defdelx(self):del self._xx = property(getx,setx, delx,"I'm the 'x' property.")

如果 cC 的實例化, c.x 將觸發 getter,c.x = value 將觸發 setter , del c.x 觸發 deleter。

如果給定 doc 參數,其將成爲這個屬性值的 docstring,否則 property 函數就會複製 fget 函數的 docstring(如果有的話)。

將 property 函數用作裝飾器可以很方便的創建只讀屬性:

classParrot(object):def __init__(self):self._voltage =100000 @propertydef voltage(self):"""Get the current voltage."""return self._voltage

上面的代碼將 voltage() 方法轉化成同名只讀屬性的 getter 方法。

property 的 getter,setter 和 deleter 方法同樣可以用作裝飾器:

classC(object):def __init__(self):self._x =None @propertydef x(self):"""I'm the 'x' property."""return self._x @x.setterdef x(self,value):self._x =value @x.deleterdef x(self):del self._x

這個代碼和第一個例子完全相同,但要注意這些額外函數的名字和 property 下的一樣,例如這裏的 x。


51.range()

pytho range() 函數可創建一個整數列表,一般用在 for 循環中。

函數語法

range(start, stop[, step])

參數說明:

  • start: 計數從 start 開始。默認是從 0 開始。例如range(5)等價於range(0, 5);
  • end: 計數到 end 結束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
  • step:步長,默認爲1。例如:range(0, 5) 等價於 range(0, 5, 1)

實例

>>>range(10)# 從 0 開始到 10[0,1, 2,3, 4,5, 6,7, 8,9]>>>range(1,11)# 從 1 開始到 11[1,2, 3,4, 5,6, 7,8, 9,10]>>>range(0,30, 5)# 步長爲 5[0,5, 10,15, 20,25]>>>range(0,10, 3)# 步長爲 3[0,3, 6,9]>>>range(0, -10, -1)# 負數[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]>>>range(0)[]>>>range(1,0)[]

以下是 range 在 for 中的使用,循環出runoob 的每個字母:

>>>x ='runoob'>>>for iin range(len(x)) :... print(x[i])...runoob>>>

52.repr()

描述

repr() 函數將對象轉化爲供解釋器讀取的形式。

語法

以下是 repr() 方法的語法:

repr(object)

參數

  • object -- 對象。

返回值

返回一個對象的 string 格式。


實例

以下展示了使用 repr() 方法的實例:

>>>s ='RUNOOB'>>>repr(s)"'RUNOOB'">>>dict = {'runoob':'runoob.com','google':'google.com'};>>>repr(dict)"{'google': 'google.com', 'runoob': 'runoob.com'}">>>


53.reversed()

描述

reversed 函數返回一個反轉的迭代器。

語法

以下是 reversed 的語法:

reversed(seq)

參數

  • seq -- 要轉換的序列,可以是 tuple, string, list 或 range。

返回值

返回一個反轉的迭代器。


實例

以下展示了使用 tuple 的實例:

實例

#!/usr/bin/env python3# 字符串seqString ='Runoob'print(list(reversed(seqString)))# 元組seqTuple =('R','u','n','o','o','b')print(list(reversed(seqTuple)))# rangeseqRange =range(5,9)print(list(reversed(seqRange)))# 列表seqList =[1,2, 4,3, 5]print(list(reversed(seqList)))

以上實例輸出結果爲:

['b', 'o', 'o', 'n', 'u', 'R']
['b', 'o', 'o', 'n', 'u', 'R']
[8, 7, 6, 5]
[5, 3, 4, 2, 1]


54.round()

描述

round() 方法返回浮點數x的四捨五入值。


語法

以下是 round() 方法的語法:

round( x [, n]  )

參數

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

返回值

返回浮點數x的四捨五入值。

實例

以下展示了使用 round() 方法的實例:

#!/usr/bin/python3

print ("round(70.23456) : ", round(70.23456))
print ("round(56.659,1) : ", round(56.659,1))
print ("round(80.264, 2) : ", round(80.264, 2))
print ("round(100.000056, 3) : ", round(100.000056, 3))
print ("round(-100.000056, 3) : ", round(-100.000056, 3))

以上實例運行後輸出結果爲:

round(70.23456) :  70
round(56.659,1) :  56.7
round(80.264, 2) :  80.26
round(100.000056, 3) :  100.0
round(-100.000056, 3) :  -100.0


55.set()

描述

set() 函數創建一個無序不重複元素集,可進行關係測試,刪除重複數據,還可以計算交集、差集、並集等。

語法

set 語法:

class set([iterable])

參數說明:

  • iterable -- 可迭代對象對象;

返回值

返回新的集合對象。

實例

以下實例展示了 set 的使用方法:

>>>x =set('runoob')>>>y = set('google')>>>x, y(set(['b','r','u','o','n']),set(['e','o','g','l']))# 重複的被刪除>>> x &y # 交集set(['o'])>>>x | y# 並集set(['b','e','g','l','o','n','r','u'])>>>x - y# 差集set(['r','b','u','n'])>>>


56.setattr()

描述

setattr 函數對應函數 getatt(),用於設置屬性值,該屬性必須存在。

語法

setattr 語法:

setattr(object, name, value)

參數

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

返回值

無。

實例

以下實例展示了 setattr 的使用方法:

>>>classA(object):...bar = 1... >>>a = A()>>>getattr(a,'bar')# 獲取屬性 bar 值1>>>setattr(a,'bar',5)# 設置屬性 bar 值>>> a.bar5

57.slice()

描述

slice() 函數實現切片對象,主要用在切片操作函數裏的參數傳遞。

語法

slice 語法:

class slice(stop)
class slice(start, stop[, step])

參數說明:

  • start -- 起始位置
  • stop -- 結束位置
  • step -- 間距

返回值

返回一個切片對象。

實例

以下實例展示了 slice 的使用方法:

>>>myslice =slice(5)# 設置截取5個元素的切片>>> mysliceslice(None,5, None)>>>arr = range(10)>>>arr[0,1, 2,3, 4,5, 6,7, 8,9]>>>arr[myslice]# 截取 5 個元素[0,1, 2,3, 4]>>>

58.sorted()

描述

sorted() 函數對所有可迭代的對象進行排序操作。

sort 與 sorted 區別:

sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。

list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函數 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操作。

語法

sorted 語法:

sorted(iterable[, cmp[, key[, reverse]]])

參數說明:

  • iterable -- 可迭代對象。
  • cmp -- 比較的函數,這個具有兩個參數,參數的值都是從可迭代對象中取出,此函數必須遵守的規則爲,大於則返回1,小於則返回-1,等於則返回0。
  • key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。
  • reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。

返回值

返回重新排序的列表。

實例

以下實例展示了 sorted 的使用方法:

>>>a =[5,7,6,3,4,1,2]>>>b = sorted(a)# 保留原列表>>> a[5,7, 6,3, 4,1, 2]>>>b[1,2, 3,4, 5,6, 7] >>>L=[('b',2),('a',1),('c',3),('d',4)]>>>sorted(L,cmp=lambdax,y:cmp(x[1],y[1]))# 利用cmp函數[('a',1),('b',2),('c',3),('d',4)]>>>sorted(L,key=lambdax:x[1])# 利用key[('a',1),('b',2),('c',3),('d',4)] >>>students = [('john','A',15),('jane','B',12),('dave','B',10)]>>>sorted(students,key=lambdas: s[2])# 按年齡排序[('dave','B',10),('jane','B',12),('john','A',15)] >>>sorted(students,key=lambdas: s[2],reverse=True)# 按降序[('john','A',15),('jane','B',12),('dave','B',10)]>>>


59.staticmethod()

python staticmethod 返回函數的靜態方法。

該方法不強制要求傳遞參數,如下聲明一個靜態方法:

class C(object):
    @staticmethod
    def f(arg1, arg2, ...):
        ...

以上實例聲明瞭靜態方法 f,類可以不用實例化就可以調用該方法 C.f(),當然也可以實例化後調用 C().f()。

函數語法

staticmethod(function)

參數說明:

實例

#!/usr/bin/python# -*- coding: UTF-8 -*-class C(object): @staticmethoddef f():print('runoob');C.f();# 靜態方法無需實例化cobj =C()cobj.f()# 也可以實例化後調用


60.str()

描述

str() 函數將對象轉化爲適於人閱讀的形式。

語法

以下是 str() 方法的語法:

class str(object='')

參數

  • object -- 對象。

返回值

返回一個對象的string格式。


實例

以下展示了使用 str() 方法的實例:

>>>s ='RUNOOB'>>>str(s)'RUNOOB'>>>dict = {'runoob':'runoob.com','google':'google.com'};>>>str(dict)"{'google': 'google.com', 'runoob': 'runoob.com'}">>>


61.sum()

描述

sum() 方法對系列進行求和計算。

語法

以下是 sum() 方法的語法:

sum(iterable[, start])

參數

  • iterable -- 可迭代對象,如列表。
  • start -- 指定相加的參數,如果沒有設置這個值,默認爲0。

返回值

返回計算結果。


實例

以下展示了使用 sum 函數的實例:

>>>sum([0,1,2])3 >>> sum((2,3, 4),1)# 元組計算總和後再加 110>>>sum([0,1,2,3,4],2)# 列表計算總和後再加 212


62.super()

描述

super() 函數用於調用下一個父類(超類)並返回該父類實例的方法。

super 是用來解決多重繼承問題的,直接用類名調用父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查找順序(MRO)、重複調用(鑽石繼承)等種種問題。

MRO 就是類的方法解析順序表, 其實也就是繼承父類方法時的順序表。

語法

以下是 super() 方法的語法:

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

參數

  • type -- 類。
  • object-or-type -- 類,一般是 self

返回值

無。


實例

以下展示了使用 super 函數的實例:

#!/usr/bin/python# -*- coding: UTF-8 -*-class FooParent(object):def __init__(self):self.parent ='I\'m the parent.'print ('Parent')def bar(self,message):print ("%s from Parent" %message)class FooChild(FooParent):def __init__(self):# super(FooChild,self) 首先找到 FooChild 的父類(就是類 FooParent),然後把類B的對象 FooChild 轉換爲類 FooParent 的對象super(FooChild,self).__init__()print ('Child')def bar(self,message):super(FooChild,self).bar(message)print ('Child bar fuction')print (self.parent)if __name__ =='__main__':fooChild = FooChild()fooChild.bar('HelloWorld')

執行結果:

Parent
Child
HelloWorld from Parent
Child bar fuction
I'm the parent.

63.tuple()

描述

tuple 函數將列表轉換爲元組。。

語法

以下是 tuple 的語法:

tuple( seq )

參數

  • seq -- 要轉換爲元組的序列。

返回值

返回元組。


實例

以下展示了使用 tuple 的實例:

實例

>>>list1=['Google','Taobao','Runoob','Baidu']>>>tuple1=tuple(list1)>>>tuple1('Google','Taobao','Runoob','Baidu')

64.type()

描述

type() 函數如果你只有第一個參數則返回對象的類型,三個參數返回新的類型對象。

isinstance() 與 type() 區別:

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

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

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

語法

以下是 type() 方法的語法:

class type(name, bases, dict)

參數

  • name -- 類的名稱。
  • bases -- 基類的元組。
  • dict -- 字典,類內定義的命名空間變量。

返回值

一個參數返回對象類型, 三個參數,返回新的類型對象。


實例

以下展示了使用 type 函數的實例:

# 一個參數實例>>>type(1)<type'int'>>>>type('runoob')<type'str'>>>>type([2])<type'list'>>>>type({0:'zero'})<type'dict'>>>>x = 1 >>>type(x ) ==int # 判斷類型是否相等True# 三個參數>>> classX(object):...a = 1...>>>X = type('X',(object,),dict(a=1))# 產生一個新的類型 X>>> X<class'__main__.X'>

type() 與 isinstance()區別:

classA: passclass B(A):pass isinstance(A(),A)# returns Truetype(A()) == A # returns Trueisinstance(B(),A)# returns Truetype(B()) == A # returns False


65.vars()

描述

vars() 函數返回對象object的屬性和屬性值的字典對象。

語法

vars() 函數語法:

vars([object])

參數

  • object -- 對象

返回值

返回對象object的屬性和屬性值的字典對象,如果沒有參數,就打印當前調用位置的屬性和屬性值 類似 locals()。

實例

以下實例展示了 vars() 的使用方法:

>>>print(vars()){'__builtins__': <module '__builtin__'(built-in)>,'__name__':'__main__','__doc__':None, '__package__':None}>>> classRunoob:... a = 1... >>>print(vars(Runoob)){'a':1, '__module__':'__main__','__doc__':None}>>> runoob =Runoob()>>>print(vars(runoob)){}

66.zip()

描述

zip() 函數用於將可迭代的對象作爲參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。

如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓爲列表。

語法

zip 語法:

zip([iterable, ...])

參數說明:

  • iterabl -- 一個或多個迭代器;

返回值

返回元組列表。

實例

以下實例展示了 zip 的使用方法:

>>>a =[1,2,3]>>>b = [4,5,6]>>>c = [4,5,6,7,8]>>>zipped = zip(a,b)# 打包爲元組的列表[(1,4),(2,5),(3,6)]>>>zip(a,c)# 元素個數與最短的列表一致[(1,4),(2,5),(3,6)]>>>zip(*zipped)# 與 zip 相反,可理解爲解壓,返回二維矩陣式[(1,2, 3),(4,5, 6)]


67.__import__()

描述

__import__() 函數用於動態加載類和函數 。

如果一個模塊經常變化就可以使用 __import__() 來動態載入。

語法

__import__ 語法:

__import__(name[, globals[, locals[, fromlist[, level]]]])

參數說明:

  • name -- 模塊名

返回值

返回元組列表。

實例

以下實例展示了 __import__ 的使用方法:

a.py 文件代碼:

#!/usr/bin/env python #encoding: utf-8importos print('在 a.py 文件中 %s' %id(os))

test.py 文件代碼:

#!/usr/bin/env python #encoding: utf-8importsys __import__('a')# 導入 a.py 模塊

執行 test.py 文件,輸出結果爲:

在 a.py 文件中 4394716136











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