Python程序设计案例课堂
上QQ阅读APP看书,第一时间看更新

5.5 内置函数

加载Python解释器之后,读者就可以直接使用内置函数。下面讲述常见内置函数的使用方法。

(1)abs(x):返回数值x的绝对值,如果x是复数的话,abs()函数会返回该复数的大小(实数部分的平方加上虚数部分的平方,再开根号)。例如:

        >>> abs(-3.12)
        3.12
        >>> abs(1+2j)
        2.23606797749979

(2)chr(i):i是ASCII字符码(0~255), chr()函数返回数值i的单字符字符串。chr()函数与ord()函数作用相反。下列案例求取ASCII字符码97的字符:

        >>> chr(97)
        'a'

(3)complex(real [, imag]):创建一个复数,其值为real + imag*j。例如:

        >>> complex(2,3)
        (2+3j)
        >>>complex(2)
        (2+0j)

(4)dir([object]):返回object对象的属性名称列表。如果没有指定参数object,则会返回现有的区域符号表(Local Symbol Table)。例如:

        >>> dir(sys)
        ['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr __', ...
        >>> import sys
        >>> dir()
        ['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__',
        'os', 'sys', 'types']

(5)divmod(a, b):将a除以b的商与余数以元组类型返回。如果a、b是整数或是长整数,返回值为(a/b,a%b)。如果是浮点数,返回值为(math.floor(a/b), a%b)。例如:

        >>> divmod(5,3)
        (1, 2)

(6)eval(expression [, globals [, locals]]):运行expression表达式。globals定义全局命名空间(global namespace), locals定义局部命名空间(local namespace)。如果没有locals参数,则使用globals定义值。如果没有globals与locals参数,则使用单元本身的命名空间。例如:

        >>>x = 3
        >>>eval("x + 5")
        8

(7)exec string[in globals [, locals]]:运行包含Python程序代码的字符串string, globals与locals分别定义全局命名空间与局部命名空间。例如:

        >>> a = "for i in range(4): print i, "
        >>> exec a
        0 1 2 3

(8)float(x):将x转换成浮点数,x可以是数值或是字符串。例如:

        >>> float(2)
        2.0
        >>> float("2")
        2.0

(9)id(object):返回object对象的唯一识别码,此识别码为一整数。例如:

        >>> id(sys)
        12404080
        >>>t = 2
        >>> id(t)
        501176608

(10)input([prompt]):提供给用户输入一个有效的Python表达式,prompt是输入时的提示字符串。但使用此函数并不保险,一般用raw_input()函数来替换。例如:

        >>> a = input("Please input a number: ")
        Please input a number:

(11)int(x [, radix]):将数值或是字符串x转换成整数。如果x是字符串,可以设置radix值。radix是进制的基底值,可以是[2,36]之间的整数或是0。如果radix是0,则Python会根据字符串值进行判断。例如:

        >>> int(100.5)
        100
        >>> int("100",8)
        64
        >>> int("100",16)
        256
        >>> int("100",0)
        100

(12)max(s [, args...]):如果只有一个参数,返回序数对象s中元素的最大值。如果有多个参数,返回最大的序数。例如:

        >>> max(1,2,3)
        3
        >>> max("HELLO PYTHON")
        'Y'
        >>> max((1,2,3), (1,2,3,4,5))
        (1, 2, 3, 4, 5)

(13)min(s [, args...]):如果只有一个参数,返回序数对象s中元素的最小值。如果有数个参数,返回最小的序数。例如:

        >>> min(1,2,3)
        1
        >>> min("HELLO PYTHON")
        ' '
        >>> min((1,2,3), (1,2,3,4,5))
        (1, 2, 3)

(14)ord(c):ord()函数返回单字符字符串c的ASCII或Unicode字符。如果c是ASCII字符,ord()函数与chr()函数作用相反。如果c是Unicode字符,ord()函数与unichr()函数作用相反。下列案例求取字符a的ASCII字符码:

        >>> ord("a")
        97

(15)pow(x, y [, z]):如果没有参数z,返回x的y次方。如果有参数z,返回x的y次方再除以z的余数。此函数比pow(x, y)% z有效率。须注意,如果x是整数,y不能是负数。

例如:

        >>> pow(2,4)
        16
        >>> pow(2,4,5)
        1
        >>> pow(2., -1)
        0.5

(16)tuple(sequence):使用sequence来创建一个元组对象。如果sequence本身就是一个元组,其值不变。例如:

        >>> tuple("abc")
        ('a', 'b', 'c')
        >>> tuple([1, 2, 3])
        (1, 2, 3)