Python参考篇


Python参考篇
整理:Jims of
肥肥世家
jims.yang@gmail.com
>
Copyright © 2004,2005 本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。
发布时间:2004年09月20日
更新时间:2005年09月16日
Table of Contents
1. 常用函数

2. 内置类型转换函数

3. 序列处理函数

4. String模块
Chapter 1. 常用函数

  • 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两个对象,并根据比较结果返回一个整数,如果xy,则返回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(copy)
      >>> type(1)

    • xrange([lower,]stop[,step])
      xrange()函数与range()类似,但xrnage()并不创建列表,而是返回一个xrange对象,它的行为与列表相似,但是只在需要时才计算列表值,当列表很大时,这个特性能为我们节省内存。
      >>> a=xrange(10)
      >>> print a[0]
      0
      >>> print a[1]
      1
      >>> print a[2]
      2

    Chapter 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)

    Chapter 3. 序列处理函数

    • 常用函数中的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*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,)]

    Chapter 4. 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']