# 内置函数

截止到python版本3.6.2 ,一共提供了68个内置函数。

# 数字相关

# 数据类型

  • bool(): 布尔型
  • int():整型
  • float(): 浮点型
  • complext() :复数

# 进制转换

  • bin():二进制
  • oct(): 八进制
  • hex(): 十六进制

# 数学运算

  • abs(): 绝对值
  • divmod():商和余数
  • round() 四舍五入
  • pow(a,b) a的b次幂
  • sum() 求和
  • max() 最大值
  • min() 最小值

# 数据结构相关

# 序列

  • list() 将可迭代对象转换成列表

  • tuple() 将可迭代对象转换为元组

  • reversed() 将序列反转,返回反转序列的迭代器

  • slice() 列表切片

  • str() 字符串

  • format() 格式化,与具体数据有关

    print(format(s, "^20")) #剧中
    print(format(s, "<20")) #左对齐
    print(format(s, ">20")) #右对齐
    # hello world!
    # hello world!
    # hello world!
    print(format(3, 'b' )) # 二进制:11
    print(format(97, 'c' )) # 转换成unicode字符:a
    print(format(11, 'd' )) # ⼗进制:11
    print(format(11, 'o' )) # 八进制:13
    print(format(11, 'x' )) # 十六进制(⼩写字母):b
    print(format(11, 'X' )) # 十六进制(大写字母):B
    print(format(11, 'n' )) # 和d⼀样:11
    print(format(11)) # 和d⼀样:11
    print(format(123456789, 'e' )) # 科学计数法. 默认保留6位小数:1.234568e+08
    print(format(123456789, '0.2e' )) # 科学计数法. 保留2位小数(小写):1.23e+08
    print(format(123456789, '0.2E' )) # 科学计数法. 保留2位小数(大写):1.23E+08
    print(format(1.23456789, 'f' )) # 小数点计数法. 保留6位小数:1.234568
    print(format(1.23456789, '0.2f' )) # 小数点计数法. 保留2位小数:1.23
    print(format(1.23456789, '0.10f')) # 小数点计数法. 保留10位小数:1.2345678900
    print(format(1.23456789e+3, 'F')) # 小数点计数法. 很大的时候输出INF:1234.567890
    
  • bytes() 字符串转bytes类型

    bs = bytes('hello world', encoding='utf8')
    print(bs)
    
  • bytearray() 字节数组

    ret = bytearray("alex" ,encoding ='utf-8')
    print(ret[0]) #97
    print(ret) #bytearray(b'alex')
    ret[0] = 65 #把65的位置A赋值给ret[0]
    print(str(ret)) #bytearray(b'Alex')
    
  • ord() 输入字符返回字符编码的位置(码位)

  • chr() 输入码位返回字符

  • ascii() 返回ascii字符或者unicode编码

  • repr() 返回一个对象的string形式

# 数据集合

  • dict() 创建一个字典
  • set() 创建一个集合
  • frozenset() 创建一个冻结的集合,不能添加和删除

# 内置函数

  • len() 对象中元素的个数

  • sorted() 对可迭代对象进行排序操作

    sorted(Iterable, key=函数(排序规则), reverse=False)
    
    #根据字符串长度给列表排序
    lst = ['one', 'two', 'three', 'four', 'five', 'six']
    def f(s):
    return len(s)
    l1 = sorted(lst, key=f, )
    print(l1) #['one', 'two', 'six', 'four', 'five', 'three']
    
  • enumerate() 获取集合的枚举对象

    lst = ['one','two','three','four','five']
    for index, el in enumerate(lst,1): # 把索引和元素一起获取,索引默认从0开始. 可以更改
    print(index)
    print(el)
    
  • all() 可迭代对象全部是True,结果才是True

  • any() 可迭代对象有一个是True,结果就是True

  • zip() 用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个元组, 然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同

    print(list(zip([1,2,3], ['a', 'b', 'c'])))
    # [(1, 'a'), (2, 'b'), (3, 'c')]
    
  • filter() 过滤,fiter(function. Iterable)

  • map() 映射,map(function, iterable)

# 迭代器

  • range() 生成等差序列
  • next() 触发迭代器向下执行,内部执行__next__()方法
  • iter() 获取迭代器,内部执行 __iter__()方法

# 作用域相关

  • locals() 局部作用域的变量
  • globals() 全局作用域的变量

# 字符串代码

  • eval() 执行字符串表达式(不能是复杂代码)

    eval('print("hello")')
    eval('if True: print("hello")') # 报错
    
  • exec() 执行字符串代码(可以是复杂代码)

    exec('if True: print("hello")')
    
  • compile() 将字符串代码进行编译,编译结果可以用于eval或者exec执行(类似正则的预编译)

    cmp = compile('if True: print("hello")', "", mode='exec')
    exec(cmp)
    

# 输入输出

  • print() 打印输出

    # sep 分隔符  end 结尾符
    print('hello', 'world', sep='-', end='@')
    
  • input() 获取用户输入

    res = input('请输入数字: ')
    print(res)
    

# 内存

  • hash() 获取对象的hash值

    print(hash('hello'))
    print(hash((1,2,3)))
    print(hash([1,2,3])) # 报错,内置的可变对象不能hash
    
  • memoryview() 返回给定参数的内存查看对象(memory view)

    所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。

    v = memoryview(bytearray('abcd', 'utf8'))
    v[1] = 100
    print(v[1:3].tobytes())
    

# 文件

  • open() 打开一个文件并创建文件句柄

# 模块

  • __import__() 动态加载类和函数

# 帮助

  • help() 查看函数或模块的用途

# 对象

  • callable() 检查一个对象是否可调用

  • dir() 查看对象的内置属性,内部调用__dir__()方法

  • setattr() 设置属性

  • getattr() 获取属性

  • hasattr() 判断属性是否存在

  • delattr() 删除属性

  • object() 返回一个object对象

  • staticmethod() 修饰方法为静态方法(通常用装饰器)

  • classmethod()修饰方法为类方法(通常用装饰器)

  • isinstance() 判断一个对象是否是一个已知的类型

  • issubclass() 判断子类关系

  • super() 用于调用父类(超类)的一个方法

  • property() 返回属性值(通常装饰器模式)

  • type()返回对象类型或者构建新的类

  • vars()返回对象object的属性和属性值的字典对象

  • id() 获取对象的内存地址。

    class Person:
        def __init__(self):
            self.name = 'zhangsan'
    
        def __call__(self, *args, **kwargs):
            print('person')
    
        def get_age(self):
            return 20
    
        def print_class(cls):
            print('Class Person')
    
        def print_static():
            print('static method')
    
        age = property(get_age)
        print_class = classmethod(print_class)
        print_static = staticmethod(print_static)
    
    
    p = Person()
    print(callable(p))
    print(dir(p))
    print(id(p))
    print(vars(p))
    print(p.age)
    print(issubclass(Person, object))
    print(isinstance(p, Person))
    Person.print_class()
    Person.print_static()
    print(type(object()))
    setattr(p, 'gender', 'man')
    print(hasattr(p, 'gender'))
    print(getattr(p, 'gender'))
    delattr(p, 'gender')
    print(hasattr(p, 'gender'))
    
上次更新: 2/13/2025, 3:29:47 AM