python 常用函數及模組z

來源:互聯網
上載者:User
轉載自 pc10
常用函數

  • abs(x)

    abs()返回一個數位絕對值。如果給出複數,傳回值就是該複數的模。

    >>>print abs(-100)
    100
    >>>print abs(1+2j)
    2.2360679775
  • callable(object)

    callable()函數用於測試對象是否可調用,如果可以則返回1(真);否則返回0(假)。可調用對象包括函數、方法、代碼對象、類和已經定義了“調用”方法的類執行個體。

    >>> a="123"
    >>> print callable(a)
    0
    >>> print callable(chr)
    1
  • cmp(x,y)

    cmp()函數比較x和y兩個對象,並根據比較結果返回一個整數,如果x<y,則返回-1;如果x>y,則返回1,如果x==y則返回0。

    >>>a=1
    >>>b=2
    >>>c=2
    >>> print cmp(a,b)
    -1
    >>> print cmp(b,a)
    1
    >>> print cmp(b,c)
    0
  • divmod(x,y)

    divmod(x,y)函數完成除法運算,返回商和餘數。

    >>> divmod(10,3)
    (3, 1)
    >>> divmod(9,3)
    (3, 0)
  • isinstance(object,class-or-type-or-tuple) -> bool

    測試物件類型

    >>> a='isinstance test'
    >>> b=1234
    >>> isinstance(a,str)
    True
    >>> isinstance(a,int)
    False
    >>> isinstance(b,str)
    False
    >>> isinstance(b,int)
    True
  • len(object) -> integer

    len()函數返回字串和序列的長度。

    >>> len("aa")
    2
    >>> len([1,2])
    2
  • pow(x,y[,z])

    pow()函數返回以x為底,y為指數的冪。如果給出z值,該函數就計算x的y次冪值被z模數的值。

    >>> print pow(2,4)
    16
    >>> print pow(2,4,2)
    0
    >>> print pow(2.4,3)
    13.824
  • range([lower,]stop[,step])

    range()函數可按參數產生連續的有序整數列表。

    >>> range(10)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> range(1,10)
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> range(1,10,2)
    [1, 3, 5, 7, 9]
  • round(x[,n])

    round()函數返回浮點數x的四捨五入值,如給出n值,則代表舍入到小數點後的位元。

    >>> round(3.333)
    3.0
    >>> round(3)
    3.0
    >>> round(5.9)
    6.0
  • type(obj)

    type()函數可返回對象的資料類型。

    >>> type(a)
    <type 'list'>
    >>> type(copy)
    <type 'module'>
    >>> type(1)
    <type 'int'>
  • xrange([lower,]stop[,step])

    xrange()函數與range()類似,但xrnage()並不建立列表,而是返回一個xrange對象,它的行為與列表相似,但是只在需要時才計算資料行表值,當列表很大時,這個特效能為我們節省記憶體。

    >>> a=xrange(10)
    >>> print a[0]
    0
    >>> print a[1]
    1
    >>> print a[2]
    2
內建類型轉換函式
  • chr(i)

    chr()函數返回ASCII碼對應的字串。

    >>> print chr(65)
    A
    >>> print chr(66)
    B
    >>> print chr(65)+chr(66)
    AB
  • complex(real[,imaginary])

    complex()函數可把字串或數字轉換為複數。

    >>> complex("2+1j")
    (2+1j)
    >>> complex("2")
    (2+0j)
    >>> complex(2,1)
    (2+1j)
    >>> complex(2L,1)
    (2+1j)
  • float(x)

    float()函數把一個數字或字串轉換成浮點數。

    >>> float("12")
    12.0
    >>> float(12L)
    12.0
    >>> float(12.2)
    12.199999999999999
  • hex(x)

    hex()函數可把整數轉換成十六進位數。

    >>> hex(16)
    '0x10'
    >>> hex(123)
    '0x7b'
  • long(x[,base])

    long()函數把數字和字串轉換成長整數,base為可選的基數。

    >>> long("123")
    123L
    >>> long(11)
    11L
  • list(x)

    list()函數可將序列對象轉換成列表。如:

    >>> list("hello world")
    ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
    >>> list((1,2,3,4))
    [1, 2, 3, 4]
  • int(x[,base])

    int()函數把數字和字串轉換成一個整數,base為可選的基數。

    >>> int(3.3)
    3
    >>> int(3L)
    3
    >>> int("13")
    13
    >>> int("14",15)
    19
  • min(x[,y,z...])

    min()函數返回給定參數的最小值,參數可以為序列。

    >>> min(1,2,3,4)
    1
    >>> min((1,2,3),(2,3,4))
    (1, 2, 3)
  • max(x[,y,z...])

    max()函數返回給定參數的最大值,參數可以為序列。

    >>> max(1,2,3,4)
    4
    >>> max((1,2,3),(2,3,4))
    (2, 3, 4)
  • oct(x)

    oct()函數可把給出的整數轉換成八位元。

    >>> oct(8)
    '010'
    >>> oct(123)
    '0173'
  • ord(x)

    ord()函數返回一個字串參數的ASCII碼或Unicode值。

    >>> ord("a")
    97
    >>> ord(u"a")
    97
  • str(obj)

    str()函數把對象轉換成可列印字串。

    >>> str("4")
    '4'
    >>> str(4)
    '4'
    >>> str(3+2j)
    '(3+2j)'
  • tuple(x)

    tuple()函數把序列對象轉換成tuple。

    >>> tuple("hello world")
    ('h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd')
    >>> tuple([1,2,3,4])
    (1, 2, 3, 4)
  •  序列處理函數
  • 常用函數中的len()、max()和min()同樣可用於序列。

  • filter(function,list)

    調用filter()時,它會把一個函數應用於序列中的每個項,並返回該函數返回真值時的所有項,從而過濾掉返回假值的所有項。

    >>> def nobad(s):
    ... return s.find("bad") == -1
    ...
    >>> s = ["bad","good","bade","we"]
    >>> filter(nobad,s)
    ['good', 'we']

    這個例子通過把nobad()函數應用於s序列中所有項,過濾掉所有包含“bad”的項。

  • map(function,list[,list])

    map()函數把一個函數應用於序列中所有項,並返回一個列表。

    >>> import string
    >>> s=["python","zope","linux"]
    >>> map(string.capitalize,s)
    ['Python', 'Zope', 'Linux']

    map()還可同時應用於多個列表。如:

    >>> import operator
    >>> s=[1,2,3]; t=[3,2,1]
    >>> map(operator.mul,s,t) # s[i]*t[j]
    [3, 4, 3]

    如果傳遞一個None值,而不是一個函數,則map()會把每個序列中的相應元素合并起來,並返回該元組。如:

    >>> a=[1,2];b=[3,4];c=[5,6]
    >>> map(None,a,b,c)
    [(1, 3, 5), (2, 4, 6)]
  • reduce(function,seq[,init])

    reduce()函數獲得序列中前兩個項,並把它傳遞給提供的函數,獲得結果後再取序列中的下一項,連同結果再傳遞給函數,以此類推,直到處理完所有項為止。

    >>> import operator
    >>> reduce(operator.mul,[2,3,4,5]) # ((2*3)*4)*5
    120
    >>> reduce(operator.mul,[2,3,4,5],1) # (((1*2)*3)*4)*5
    120
    >>> reduce(operator.mul,[2,3,4,5],2) # (((2*2)*3)*4)*5
    240
  • zip(seq[,seq,...])

    zip()函數可把兩個或多個序列中的相應項合并在一起,並以元組的格式返回它們,在處理完最短序列中的所有項後就停止。

    >>> zip([1,2,3],[4,5],[7,8,9])
    [(1, 4, 7), (2, 5, 8)]

    如果參數是一個序列,則zip()會以一元組的格式返回每個項,如:

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

模組可把一個複雜的程式按功能分開,分別存放到不同檔案中,使程式更容易維護和管理。在Python中的模組是一個以.py結尾的Python代碼檔案。可通過import命令輸入,如:

import sys

import會完成以下三個操作:

  • 建立新的名稱空間(namespace),該名稱空間中擁有輸入模組中定義的所有對象;

  • 執行模組中的代碼;

  • 建立該名稱空間的變數名。

import語句可同時輸入多個模組,如:

import os,sys,system

也可寫成:

import os
import sys
import system

有些模組的名稱很長,我們可在輸入時給它起個簡單的別名,這樣在使用模組中的對象就方便很多,如:

import ftplib as ftp

有時我們可能只想使用模組中某個對象,又不想把整個模組輸入,則可以用from...import語句輸入特定對象。如:

from ftplib import FTP

這樣,我們就可直接使用FTP(),而不用帶首碼。

如果裝載模組出錯,會引發ImportError異常。我們可捕獲該異常進行相應處理。

Python指令碼和模組都是一個以.py結束的檔案,那程式是如何判斷一個.py檔案是作為指令碼還是模組呢?關鍵是一個名為__name__的變 量,如果它的值是__main__,則不能作為模組,只能作為指令碼直接運行。所以在很多指令碼的最後都有一段類似下面的語句,限制只能以指令碼方式運行,不作 為模組:

if __name__ == '__main__':
main()

幾個功能相近的模組我們可組成一個Python包,存放到一個目錄結構中,通過輸入包的路徑來調用對象。要定義包,就要建一個與包名同名的目錄,接 著在該目錄下建立__init__.py檔案。該檔案是包的初始設定檔案,可以為空白,也可定義一個代碼。例如一個WebDesign包的目錄如下:

/WebDesign
__init_.py
design.py
draw.py
...

我們可通過以下語句輸入design模組:

import WebDesign.design
String模組
  • replace(string,old,new[,maxsplit])

    字串的替換函數,把字串中的old替換成new。預設是把string中所有的old值替換成new值,如果給出maxsplit值,還可控制替換的個數,如果maxsplit為1,則只替換第一個old值。

    >>>a="11223344"
    >>>print string.replace(a,"1","one")
    oneone2223344
    >>>print string.replace(a,"1","one",1)
    one12223344
  • capitalize(string)

    該函數可把字串的首個字元替換成大字。

    >>> import string
    >>> print string.capitalize("python")
    Python
  • split(string,sep=None,maxsplit=-1)

    從string字串中返回一個列表,以sep的值為分界符。

    >>> import string
    >>> ip="192.168.3.3"
    >>> ip_list=string.split(ip,'.')
    >>> print ip_list
    ['192', '168', '3', '3']
  • join(string[,sep])

    返回用sep串連的字串,預設的sep是空格。

    >>> import string
    >>> a = ['a','b','c']
    >>> b = string.join(a,'-')
    >>> b
    'a-b-c'
    >>> a
    ['a', 'b', 'c']
 time模組

內建模組time包含很多與時間相關函數。我們可通過它獲得當前的時間和格式化時間輸出。

  • time(),以浮點形式返回自Linux新世紀以來經過的秒數。在linux中,00:00:00 UTC, January 1, 1970是新紀元的開始。

    >>> time.time()
    1150269086.6630149
    >>> time.ctime(1150269086.6630149)
    >>> 'Wed Jun 14 15:11:26 2006'
  • ctime([sec]),把秒數轉換成日期格式,如果不帶參數,則顯示當前的時間。

    >>> import time
    >>> time.ctime()
    >>> 'Wed Jun 14 15:02:50 2006'
    >>> time.ctime(1138068452427683)
    'Sat Dec 14 04:51:44 1901'
  • sleep(secs),定時。

    >>> time.sleep(10) 
    >>> #10秒後才會出現>>>提示符
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.