首页 > 编程语言 >Python内置函数详解-总结篇

Python内置函数详解-总结篇

时间:2023-02-02 16:34:31浏览次数:55  
标签:__ 内置 name format Python self 传入 对象 详解

 

  一直以来都是现查现学Python的相关内置函数,想看看全部的汇总版本,最近还真发现有大佬早已把相关的内置函数全部汇总完毕了。

博主 十月狐狸 将Python 3.5版本中的68个内置函数,按顺序逐个进行了详细的解析,对这些内置函数分为了10个大类。链接见:Python内置函数详解——总结篇,同时参考资料也有引用,现在这里进行搬运。

搬运之余,这里其中会补充一些博主没有提及到的比如 lambda 函数, reduce 函数等等。

  •     数学运算(7个)
  •     类型转换(24个)
  •     序列操作(8个)
  •     对象操作(7个)
  •     反射操作(8个)
  •     变量操作(2个)
  •     交互操作(2个)
  •     文件操作(1个)
  •     编译执行(4个)
  •     装饰器(3个)

数学运算

   

  类型转换

 

 

 

  序列操作

 

 

  对象操作

 

  • help:返回对象的帮助信息 复制代码
    >>> help(str) 
    Help on class str in module builtins:
    
    class str(object)
     |  str(object='') -> str
     |  str(bytes_or_buffer[, encoding[, errors]]) -> str
     |  
     |  Create a new string object from the given object. If encoding or
     |  errors is specified, then the object must expose a data buffer
     |  that will be decoded using the given encoding and error handler.
     |  Otherwise, returns the result of object.__str__() (if defined)
     |  or repr(object).
     |  encoding defaults to sys.getdefaultencoding().
     |  errors defaults to 'strict'.
     |  
     |  Methods defined here:
     |  
     |  __add__(self, value, /)
     |      Return self+value.
     |  
      ***************************
    复制代码
  • dir:返回对象或者当前作用域内的属性列表
    >>> import math
    >>> math
    <module 'math' (built-in)>
    >>> dir(math)
    ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
  • id:返回对象的唯一标识符
    >>> a = 'some text'
    >>> id(a)
    69228568
  • hash:获取对象的哈希值
    >>> hash('good good study')
    1032709256
  • type:返回对象的类型,或者根据传入的参数创建一个新的类型 复制代码
    >>> type(1) # 返回对象的类型
    <class 'int'>
    
    #使用type函数创建类型D,含有属性InfoD
    >>> D = type('D',(A,B),dict(InfoD='some thing defined in D'))
    >>> d = D()
    >>> d.InfoD
     'some thing defined in D'
    复制代码
  • len:返回对象的长度 复制代码
    >>> len('abcd') # 字符串
    >>> len(bytes('abcd','utf-8')) # 字节数组
    >>> len((1,2,3,4)) # 元组
    >>> len([1,2,3,4]) # 列表
    >>> len(range(1,5)) # range对象
    >>> len({'a':1,'b':2,'c':3,'d':4}) # 字典
    >>> len({'a','b','c','d'}) # 集合
    >>> len(frozenset('abcd')) #不可变集合
    复制代码
  • ascii:返回对象的可打印表字符串表现方式 复制代码
    >>> ascii(1)
    '1'
    >>> ascii('&')
    "'&'"
    >>> ascii(9000000)
    '9000000'
    >>> ascii('中文') #非ascii字符
    "'\\u4e2d\\u6587'"
    复制代码
  • format:格式化显示值 复制代码
    #字符串可以提供的参数 's' None
    >>> format('some string','s')
    'some string'
    >>> format('some string')
    'some string'
    
    #整形数值可以提供的参数有 'b' 'c' 'd' 'o' 'x' 'X' 'n' None
    >>> format(3,'b') #转换成二进制
    '11'
    >>> format(97,'c') #转换unicode成字符
    'a'
    >>> format(11,'d') #转换成10进制
    '11'
    >>> format(11,'o') #转换成8进制
    '13'
    >>> format(11,'x') #转换成16进制 小写字母表示
    'b'
    >>> format(11,'X') #转换成16进制 大写字母表示
    'B'
    >>> format(11,'n') #和d一样
    '11'
    >>> format(11) #默认和d一样
    '11'
    
    #浮点数可以提供的参数有 'e' 'E' 'f' 'F' 'g' 'G' 'n' '%' None
    >>> format(314159267,'e') #科学计数法,默认保留6位小数
    '3.141593e+08'
    >>> format(314159267,'0.2e') #科学计数法,指定保留2位小数
    '3.14e+08'
    >>> format(314159267,'0.2E') #科学计数法,指定保留2位小数,采用大写E表示
    '3.14E+08'
    >>> format(314159267,'f') #小数点计数法,默认保留6位小数
    '314159267.000000'
    >>> format(3.14159267000,'f') #小数点计数法,默认保留6位小数
    '3.141593'
    >>> format(3.14159267000,'0.8f') #小数点计数法,指定保留8位小数
    '3.14159267'
    >>> format(3.14159267000,'0.10f') #小数点计数法,指定保留10位小数
    '3.1415926700'
    >>> format(3.14e+1000000,'F')  #小数点计数法,无穷大转换成大小字母
    'INF'
    
    #g的格式化比较特殊,假设p为格式中指定的保留小数位数,先尝试采用科学计数法格式化,得到幂指数exp,如果-4<=exp<p,则采用小数计数法,并保留p-1-exp位小数,否则按小数计数法计数,并按p-1保留小数位数
    >>> format(0.00003141566,'.1g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点
    '3e-05'
    >>> format(0.00003141566,'.2g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留1位小数点
    '3.1e-05'
    >>> format(0.00003141566,'.3g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留2位小数点
    '3.14e-05'
    >>> format(0.00003141566,'.3G') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点,E使用大写
    '3.14E-05'
    >>> format(3.1415926777,'.1g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留0位小数点
    '3'
    >>> format(3.1415926777,'.2g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留1位小数点
    '3.1'
    >>> format(3.1415926777,'.3g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留2位小数点
    '3.14'
    >>> format(0.00003141566,'.1n') #和g相同
    '3e-05'
    >>> format(0.00003141566,'.3n') #和g相同
    '3.14e-05'
    >>> format(0.00003141566) #和g相同
    '3.141566e-05'
    复制代码
  • vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表 复制代码
    #作用于类实例
    >>> class A(object):
        pass
    
    >>> a.__dict__
    {}
    >>> vars(a)
    {}
    >>> a.name = 'Kim'
    >>> a.__dict__
    {'name': 'Kim'}
    >>> vars(a)
    {'name': 'Kim'}
    复制代码

 

  反射操作

 

  • __import__:动态导入模块
    index = __import__('index')
    index.sayHello()
  • isinstance:判断对象是否是类或者类型元组中任意类元素的实例
    >>> isinstance(1,int)
    True
    >>> isinstance(1,str)
    False
    >>> isinstance(1,(int,str))
    True
  • issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类 复制代码
    >>> issubclass(bool,int)
    True
    >>> issubclass(bool,str)
    False
    
    >>> issubclass(bool,(str,int))
    True
    复制代码
  • hasattr:检查对象是否含有属性 复制代码
    #定义类A
    >>> class Student:
        def __init__(self,name):
            self.name = name
    
            
    >>> s = Student('Aim')
    >>> hasattr(s,'name') #a含有name属性
    True
    >>> hasattr(s,'age') #a不含有age属性
    False
    复制代码
  • getattr:获取对象的属性值 复制代码
    #定义类Student
    >>> class Student:
        def __init__(self,name):
            self.name = name
    
    >>> getattr(s,'name') #存在属性name
    'Aim'
    
    >>> getattr(s,'age',6) #不存在属性age,但提供了默认值,返回默认值
    
    >>> getattr(s,'age') #不存在属性age,未提供默认值,调用报错
    Traceback (most recent call last):
      File "<pyshell#17>", line 1, in <module>
        getattr(s,'age')
    AttributeError: 'Stduent' object has no attribute 'age'
    复制代码
  • setattr:设置对象的属性值 复制代码
    >>> class Student:
        def __init__(self,name):
            self.name = name
    
            
    >>> a = Student('Kim')
    >>> a.name
    'Kim'
    >>> setattr(a,'name','Bob')
    >>> a.name
    'Bob'
    复制代码
  • delattr:删除对象的属性 复制代码
    #定义类A
    >>> class A:
        def __init__(self,name):
            self.name = name
        def sayHello(self):
            print('hello',self.name)
    
    #测试属性和方法
    >>> a.name
    '小麦'
    >>> a.sayHello()
    hello 小麦
    
    #删除属性
    >>> delattr(a,'name')
    >>> a.name
    Traceback (most recent call last):
      File "<pyshell#47>", line 1, in <module>
        a.name
    AttributeError: 'A' object has no attribute 'name'
    复制代码
  • callable:检测对象是否可被调用 复制代码
    >>> class B: #定义类B
        def __call__(self):
            print('instances are callable now.')
    
            
    >>> callable(B) #类B是可调用对象
    True
    >>> b = B() #调用类B
    >>> callable(b) #实例b是可调用对象
    True
    >>> b() #调用实例b成功
    instances are callable now.
    复制代码

 

  变量操作

 

  • globals:返回当前作用域内的全局变量和其值组成的字典
    >>> globals()
    {'__spec__': None, '__package__': None, '__builtins__': <module 'builtins' (built-in)>, '__name__': '__main__', '__doc__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>}
    >>> a = 1
    >>> globals() #多了一个a
    {'__spec__': None, '__package__': None, '__builtins__': <module 'builtins' (built-in)>, 'a': 1, '__name__': '__main__', '__doc__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>}
  • locals:返回当前作用域内的局部变量和其值组成的字典 复制代码
    >>> def f():
        print('before define a ')
        print(locals()) #作用域内无变量
        a = 1
        print('after define a')
        print(locals()) #作用域内有一个a变量,值为1
    
        
    >>> f
    <function f at 0x03D40588>
    >>> f()
    before define a 
    {} 
    after define a
    {'a': 1}
    复制代码

 

  交互操作

 

  • print:向标准输出对象打印输出
    >>> print(1,2,3)
    1 2 3
    >>> print(1,2,3,sep = '+')
    1+2+3
    >>> print(1,2,3,sep = '+',end = '=?')
    1+2+3=?
  • input:读取用户输入值
    >>> s = input('please input your name:')
    please input your name:Ain
    >>> s
    'Ain'

 

  文件操作

 

  • open:使用指定的模式和编码打开文件,返回文件读写对象
    # t为文本读写,b为二进制读写
    >>> a = open('test.txt','rt')
    >>> a.read()
    'some text'
    >>> a.close()

 

  编译执行

 

  • compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值 复制代码
    >>> #流程语句使用exec
    >>> code1 = 'for i in range(0,10): print (i)'
    >>> compile1 = compile(code1,'','exec')
    >>> exec (compile1)
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    
    >>> #简单求值表达式用eval
    >>> code2 = '1 + 2 + 3 + 4'
    >>> compile2 = compile(code2,'','eval')
    >>> eval(compile2)
    10
    复制代码
  • eval:执行动态表达式求值
    >>> eval('1+2+3+4')
    10
  • exec:执行动态语句块
    >>> exec('a=1+2') #执行语句
    >>> a
    3
  • repr:返回一个对象的字符串表现形式(给解释器)
    >>> a = 'some text'
    >>> str(a)
    'some text'
    >>> repr(a)
    "'some text'"

 

  装饰器

 

  • property:标示属性的装饰器 复制代码
    >>> class C:
        def __init__(self):
            self._name = ''
        @property
        def name(self):
            """i'm the 'name' property."""
            return self._name
        @name.setter
        def name(self,value):
            if value is None:
                raise RuntimeError('name can not be None')
            else:
                self._name = value
    
                
    >>> c = C()
    
    >>> c.name # 访问属性
    ''
    >>> c.name = None # 设置属性时进行验证
    Traceback (most recent call last):
      File "<pyshell#84>", line 1, in <module>
        c.name = None
      File "<pyshell#81>", line 11, in name
        raise RuntimeError('name can not be None')
    RuntimeError: name can not be None
    
    >>> c.name = 'Kim' # 设置属性
    >>> c.name # 访问属性
    'Kim'
    
    >>> del c.name # 删除属性,不提供deleter则不能删除
    Traceback (most recent call last):
      File "<pyshell#87>", line 1, in <module>
        del c.name
    AttributeError: can't delete attribute
    >>> c.name
    'Kim'
    复制代码
  • classmethod:标示方法为类方法的装饰器 复制代码
    >>> class C:
        @classmethod
        def f(cls,arg1):
            print(cls)
            print(arg1)
    
            
    >>> C.f('类对象调用类方法')
    <class '__main__.C'>
    类对象调用类方法
    
    >>> c = C()
    >>> c.f('类实例对象调用类方法')
    <class '__main__.C'>
    类实例对象调用类方法
    复制代码
  • staticmethod:标示方法为静态方法的装饰器 复制代码
    # 使用装饰器定义静态方法
    >>> class Student(object):
        def __init__(self,name):
            self.name = name
        @staticmethod
        def sayHello(lang):
            print(lang)
            if lang == 'en':
                print('Welcome!')
            else:
                print('你好!')
    
                
    >>> Student.sayHello('en') #类调用,'en'传给了lang参数
    en
    Welcome!
    
    >>> b = Student('Kim')
    >>> b.sayHello('zh')  #类实例对象调用,'zh'传给了lang参数
    zh
    你好
    复制代码

标签:__,内置,name,format,Python,self,传入,对象,详解
From: https://www.cnblogs.com/ck-zscs/p/17086437.html

相关文章

  • PYTHON函数
    PYTHON函数函数是指组织好的,可重复使用的,用来实现特定功能的代码段语法:​ def函数名(传入参数):​ 函数体​ return返回值参数可以省略,返回值可以省略(......
  • bootstrap suggest搜索建议插件使用详解
    近日因工作需要看了下此插件。首先下载bootstrapjs包。添加此插件的引用。注意css样式要引用,不能忘记。前台页面代码,因为楼主做的是选项卡切换查询不同的结果。......
  • python内置函数open()
    介绍open()函数用于打开文件并返回其文件对象。open()函数的语法格式:open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,......
  • Python 根据经纬度坐标计算位置
    示例代码 frommathimportradians,cos,sin,asin,sqrt#公式计算两点间距离(m)defgeodistance(lng1,lat1,lng2,lat2):#lng1,lat1,lng2,lat2=(116.37......
  • Python字符串如何转为bytes对象
    1,字符串转换byte字节指的是计算机上面用来表示存储值的一种计量单位,但是它放在python里面的话就是一种数据类型,这个数据类型的名称为bytes。可以将其看做是二进制字节格......
  • c++内置类型
    内置类型,由编译器规定,不在任何头文件中,分为三种主要类型:整型、浮点型和void。void类型void主要用于声明无返回值的函数、声明指向任意类型化数据的指针或用于以下类型的......
  • Python中time库的使用(日期时间)
    time库是python中处理时间的标准库。计算机时间的表达:time()、ctime()、gmtime();提供获取系统时间并格式化输出功能:strftime()、strptime()提供系统级精确计......
  • 2、Python基础(函数)
    #格式化代码快捷键Ctrl+Alt+L#函数的定义​deff1():print("你好")​​#函数的调用f1()​​#函数的参数#使用函数计算1+2的值​d......
  • python入门之元组(tuple)
    """元组tuple1.由一系列变量组成的不可变系列容器2.不可变是指一但创建,不可以再添加/删除/修改元素3.列表用[],元组用()4.列表和元......
  • 单一资产VaR风险--基于python
    数据源:使用 AKShare包。它是一个免费、开源的Python财经数据接口包。网址https://www.akshare.xyz/index.html一、获取数据:计算日收益率:importpandasaspdimport......