美文网首页
Python3内置函数(三)

Python3内置函数(三)

作者: 山有木兮有木兮 | 来源:发表于2017-11-04 18:35 被阅读0次


    bin()

    bin()返回一个整数 int 或者长整数 long int 的二进制表示。

    语法:   bin(x)

    参数:    x -- int 或者 long int 数字

    返回值:  字符串。

    实例:

    >>>bin(10)

    '0b1010'

    eval()

    eval() 函数用来执行一个字符串表达式,并返回表达式的值。

    语法:

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

    参数:  expression -- 表达式。

    globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。

    locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

    返回值: 返回表达式计算结果。

    实例:

    >>>x=7

    >>>eval('3 * x')

    21

    int()

    int() 函数用于将一个字符串会数字转换为整型。

    语法:  class int(x, base=10)

    参数: x -- 字符串或数字。

    base -- 进制数,默认十进制。

    返回值:返回整型数据。

    实例:

    >>>int()# 不传入参数时,得到结果0

    0

    >>>int(3)

    3

    >>>int(3.6)

    3

    >>>int('12',16)# 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制

    18

    >>>int('0xa',16)

    10

    >>>int('10',8)

    8

    open()

    open() 函数用于打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。

    语法:

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

    参数说明:

    name : 一个包含了你要访问的文件名称的字符串值。

    mode : mode 决定了打开文件的模式:只读,写入,追加等。默认文件访问模式为只读(r)。

    buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

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

    模式描述

    r: 只读,默认

    rb: 二进制只读

    r+: 打开一个文件用于读写

    rb+:以二进制打开一个文件用于读写

    w: 打开一个文件只用于写入

    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'

    str()

    str() 函数将对象转化为适于人阅读的形式。

    语法:

    classstr(object='')

    参数:object -- 对象。

    返回值:返回一个对象的string格式。

    实例:

    bool()

    bool()函数用于将给定参数转换为布尔类型,如果没有参数,将返回False

    bool是int 的子类

    语法:class bool ([x])

    参数:x -- 要进行转换的参数。

    返回值:返回 Ture 或 False。

    实例:

    >>>bool()

    False

    >>>bool(0)

    False

    >>>bool(1)

    True

    >>>bool(2)

    True

    >>>issubclass(bool,int)# bool 是 int 子类

    True

    isinstance()

    isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

    isinstance() 与 type() 区别:

    type() 不会认为子类是一种父类类型,不考虑继承关系。

    isinstance() 会认为子类是一种父类类型,考虑继承关系。

    如果要判断两个类型是否相同推荐使用 isinstance()。

    语法:

    isinstance(object,classinfo)

    参数:

    object -- 实例对象。

    classinfo -- 可以是直接或间接类名、基本类型或者有它们组成的元组。

    返回值:

    如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。。

    实例:

    >>>a=2

    >>>isinstance(a,int)

    True

    >>>isinstance(a,str)

    False

    >>>isinstance(a,(str,int,list))# 是元组中的一个返回 True

    True

    type() 与 isinstance()区别:

    class A :

    pass

    classB(A):

    pass

    isinstance(A(),A)            # returns True

    type(A())==A                  # returns True

    isinstance(B(),A)            # returns True

    type(B())==A                  # returns False

    exec()

    exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。

    语法:

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

    参数:

    object:必选参数,表示需要被指定的Python代码。它必须是字符串或code对象。如果object是一个字符串,该字符串会先被解析为一组Python语句,然后在执行(除非发生语法错误)。如果object是一个code对象,那么它只是被简单的执行。

    globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象。

    locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与globals相同的值。

    返回值

    exec 返回值永远为 None。

    实例:

    实例 1

    >>>exec('print("Hello World")')

    HelloWorld

    # 单行语句字符串

    >>>exec("print ('runoob.com')")runoob.com

    #  多行语句字符串

    >>>exec("""for i in range(5):

    ...    print ("iter time: %d" % i)

    ...""")

    iter time: 0

    iter time: 1

    iter time: 2

    iter time: 3

    iter time: 4

    ord()

    ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。

    语法: ord(c)

    参数:c -- 字符。

    返回值:返回值是对应的十进制整数。

    实例:

    >>>ord('a')

    97

    >>>ord('b')

    98

    >>>ord('c')

    99

    sum()

    sum()方法对系列进行求和计算。

    语法: sum(iterable[,start])

    参数:

    iterable -- 可迭代对象,如列表。

    start -- 指定相加的参数,如果没有设置这个值,默认为0。

    返回值:返回计算结果。

    实例:

    >>>sum([0,1,2])

    3

    >>>sum((2,3,4),1)# 元组计算总和后再加 1

    10

    >>>sum([0,1,2,3,4],2)# 列表计算总和后再加 2

    12

    bytearray()

    bytearray()方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。

    语法:class bytearray([source[, encoding[, errors]]])

    参数

    如果 source 为整数,则返回一个长度为 source 的初始化数组;

    如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

    如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

    如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

    如果没有输入任何参数,默认就是初始化数组为0个元素。

    返回值:返回新字节数组。

    实例:

    >>>bytearray()

    bytearray(b'')

    >>>bytearray([1,2,3])

    bytearray(b'\x01\x02\x03')

    >>>bytearray('runoob','utf-8')

    bytearray(b'runoob')

    >>>

    filter()

    filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

    该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

    语法: filter(function, iterable)

    参数:function -- 判断函数。

    iterable -- 可迭代对象。

    返回值:返回列表。

    实例:

    过滤出列表中的所有奇数:

    #!/usr/bin/python# -*-

    coding: UTF-8 -*-

    def is_odd(n):

                return  n%2 == 1

    newlist = filter(is_odd,[1,2,3,4,5,6,7,8,9,10])

    print(newlist)

    输出结果 :

    [1, 3, 5, 7, 9]

    issubclass()

    issubclass()方法用于判断参数 class 是否是类型参数 classinfo 的子类。

    语法:issubclass(class,classinfo)

    参数:class -- 类。classinfo -- 类。

    返回值:如果 class 是 classinfo 的子类返回 True,否则返回 False。

    实例:

    #!/usr/bin/python# -*-

    coding: UTF-8 -*-

    class A:

            pass

    class B(A):

            pass

    print(issubclass(B,A))# 返回 True

    pow()

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

    语法:

    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次方) 的值。

    实例:

    #!/usr/bin/python3

    importmath# 导入 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

    super()

    super()函数用于调用下一个父类(超类)并返回该父类实例的方法。

    super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

    MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。

    语法:

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

    参数:

    type -- 类。

    object-or-type -- 类,一般是 self

    实例:

    执行结果:

    Parent

    Child

    HelloWorldfromParent

    Childbar fuction

    I'm the parent.

    相关文章

      网友评论

          本文标题:Python3内置函数(三)

          本文链接:https://www.haomeiwen.com/subject/cstqmxtx.html