python内置函数

Posted 耗油炒白菜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python内置函数相关的知识,希望对你有一定的参考价值。

vars()和类方法下的__dict__效果相同

//描述
abs() 函数返回数字的绝对值。
//语法
以下是 abs() 方法的语法:
abs( x )
//参数
x -- 数值表达式,可以是整数,浮点数,复数。
//返回值
函数返回 x(数字)的绝对值,如果参数是一个复数,则返回它的大小。
//实例
以下展示了使用 abs() 方法的实例:
#!/usr/bin/python3
print ("abs(-40) : ", abs(-40))       #负数
print("abs(2-3):",abs(2-3))     #表达式
以上实例运行后输出结果为:
abs(-40) :  40
abs(2-3) 1
abs()
//描述
all() 函数用于判断给定的可迭代对象 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
元素除了是 0、空、FALSE 外都算 TRUE。
函数等价于:
def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True
Python 2.5 以上版本可用。
//语法
以下是 all() 方法的语法:
all(iterable)
//参数
iterable -- 元组或列表。
//返回值
如果iterable的所有元素不为0、\'\'、False,all(iterable)返回True,否则返回False;

注意:空元组、空列表返回值为True,这里要特别注意。

//实例
以下展示了使用 all() 方法的实例:
print(all([\'a\',\'b\',\'c\',\'d\']))  #True
print(all([\'a\',\'b\',\'\',\'d\']))   #False
print(all([0,1,2,3]))       #False
print(all(("",1,2,3)))      #False
print(all({}))          #True
print(all([]))          #True
print(all(()))          #True
all()
//描述
any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,是则返回 False,如果有一个为 True,则返回 True。
元素除了是 0、空、FALSE 外都算 TRUE。
函数等价于:
def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
Python 2.5 以上版本可用。
//语法
以下是 any() 方法的语法:
any(iterable)
//参数
iterable -- 元组或列表。
//返回值
如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true。
//实例
以下展示了使用 any() 方法的实例:
>>>any([\'a\', \'b\', \'c\', \'d\'])  # 列表list,元素都不为空或0
True
>>> any([\'a\', \'b\', \'\', \'d\'])   # 列表list,存在一个为空的元素
True
>>> any([0, \'\', False])        # 列表list,元素全为0,\'\',false
False 
>>> any((\'a\', \'b\', \'c\', \'d\'))  # 元组tuple,元素都不为空或0
True 
>>> any((\'a\', \'b\', \'\', \'d\'))   # 元组tuple,存在一个为空的元素
True 
>>> any((0, \'\', False))        # 元组tuple,元素全为0,\'\',false
False 
>>> any([]) # 空列表
False
>>> any(()) # 空元组
False
any()
//描述
ascii() 函数类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 repr() 函数使用 \\x, \\u 或 \\U 编码的字符。 生成字符串类似 Python2 版本中 repr() 函数的返回值。
//语法
以下是 ascii() 方法的语法:
ascii(object)
//参数
object -- 对象。
//返回值
返回字符串。
//实例
以下展示了使用 ascii() 方法的实例:
>>> ascii([1,2,3])
\'[1, 2, 3]\'
ascii()
//描述
bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
//语法
以下是 bin() 方法的语法:
bin(x)
//参数
x -- int 或者 long int 数字
//返回值
字符串。
//实例
以下展示了使用 bin 函数的实例:
>>>bin(10)
\'0b1010\'
>>> bin(20)
\'0b10100\'
bin()
//描述
bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。
class bool 是 int 的子类。
0,空字典,空列表。。。都是False,非零为真
//语法
以下是 bool() 方法的语法:
bool([x])
//参数
x -- 要进行转换的参数。
//返回值
返回 Ture 或 False。
//实例
以下展示了使用 bool 函数的实例:
>>>bool()
False
>>> bool(0)
False
>>> bool(1)
True
>>> bool(2)
True
>>> issubclass(bool, int)  # bool 是 int 子类
True
bool()
//描述
bytearray() 方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。
语法
bytearray()方法语法:
class bytearray([source[, encoding[, errors]]])
//参数
如果 source 为整数,则返回一个长度为 source 的初始化数组;
如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
如果没有输入任何参数,默认就是初始化数组为0个元素。
//返回值
返回新字节数组。
//实例
以下实例展示了 bytearray() 的使用方法:
a=bytearray(12)   #为整数
print(a)     #回一个长度为12的初始化数组
b=bytearray("abcde",encoding="utf-8")    #为字符串
b[0]=99           #修改a为c
print(b)            
c=bytearray([1,2,3])  #为可迭代类型,则元素必须为[0 ,255] 中的整数
print(c)
//执行结果依次为
bytearray(b\'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\')
bytearray(b\'cbcde\')
bytearray(b\'\\x01\\x02\\x03\')

//注意正常字节,字符串类型是修改不了的,要修改只能用新的覆盖原先的。但是用bytearray可以修改
a=bytes(\'abcde\',encoding="utf-8")
print(a.capitalize(),a)      #a.capitalize()首字母大写
b=bytearray("abcde",encoding="utf-8")
b[0]=99
print(b)
//执行结果
b\'Abcde\' b\'abcde\'
bytearray(b\'cbcde\')
bytearray()
//描述
bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。
//语法
以下是 bytes 的语法:
class bytes([source[, encoding[, errors]]])
//参数
如果 source 为整数,则返回一个长度为 source 的初始化数组;
如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
如果没有输入任何参数,默认就是初始化数组为0个元素。
//返回值
返回一个新的 bytes 对象。
//实例
以下展示了使用 bytes 的实例:
//代码
>>>a = bytes([1,2,3,4])   #为可迭代类型
>>> a
b\'\\x01\\x02\\x03\\x04\'
>>> type(a)
<class \'bytes\'>
>>>
>>> a = bytes("hello",encoding="utf-8"
>>>
>>> a
b\'hello\'
>>> type(a)
<class \'bytes\'>
>>>
bytes()
//描述
callable() 函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。
//语法
callable()方法语法:
callable(object)
//参数
object -- 对象
//返回值
可调用返回 True,否则返回 False。
//实例
以下实例展示了 callable() 的使用方法:
>>>callable(0)
False
>>> callable("runoob")
False
>>> def add(a, b):
...     return a + b
... 
>>> callable(add)             # 函数返回 True
True
>>> class A:                  #
...     def method(self):
...             return 0
... 
>>> callable(A)               # 类返回 True
True
>>> a = A()
>>> callable(a)               # 没有实现 __call__, 返回 False
False
>>> class B:
...     def __call__(self):
...             return 0
... 
>>> callable(B)
True
>>> b = B()
>>> callable(b)               # 实现 __call__, 返回 True
True
callable()
//描述
chr() 用一个整数作参数,返回一个ASCII码对应的字符。
//语法
以下是 chr() 方法的语法:
chr(i)
//参数
i -- 可以是 10 进制也可以是 16 进制的形式的数字,数字范围为 0 到 1,114,111 (16 进制为0x10FFFF)。
//返回值
返回值是当前整数对应的 ASCII 字符。
//实例
以下展示了使用 chr() 方法的实例:
>>>chr(0x30)
\'0\'
>>> chr(97) 
\'a\'
>>> chr(8364)
\'\'
chr()
//描述
ord() 函数是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。
//语法
以下是 ord() 方法的语法:
ord(c)
//参数
c -- 字符。
//返回值
返回值是对应的十进制整数。
//实例
以下展示了使用 ord() 方法的实例:
>>>ord(\'a\')
97
>>> ord(\'\')
8364
>>>
ord()
描述
classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

//语法
classmethod 语法:
classmethod
//参数
无。
//返回值
返回函数的类方法。
//实例
class A(object):
    # 属性默认为类属性(可以给直接被类本身调用)
    num = "类属性"

    # 实例化方法(必须实例化类之后才能被调用)
    def func1(self):  # self : 表示实例化类后的地址id
        print("func1")
        print(self)

    # 类方法(不需要实例化类就可以被类本身调用)
    @classmethod
    def func2(cls):  # cls : 表示没用被实例化的类本身
        print("func2")
        print(cls)
        print(cls.num)
        cls().func1()

    # 不传递传递默认self参数的方法(该方法也是可以直接被类调用的,但是这样做不标准)
    def func3():
        print("func3")
        print(A.num)  # 属性是可以直接用类本身调用的


# A.func1() 这样调用是会报错:因为func1()调用时需要默认传递实例化类后的地址id参数,如果不实例化类是无法调用的
A.func2()
A.func3()

//执行结果
func2
<class \'__main__.A\'>
类属性
func1
<__main__.A object at 0x00000000010E8780>
func3
类属性
classmethod
//描述
compile() 函数将一个字符串编译为字节代码。

//语法
以下是 compile() 方法的语法:
compile(source, filename, mode[, flags[, dont_inherit]])
//参数
source -- 字符串或者AST(Abstract Syntax Trees)对象。。
filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。(没有用可忽略不写)
mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。(基本不用)
flags和dont_inherit是用来控制编译源码时的标志(基本不用)
//返回值
返回表达式执行结果。
//实例
以下展示了使用 compile 函数的实例:
>>>str = "for i in range(0,10): print(i)" 
>>> c = compile(str,\'\',\'exec\')   # 编译为字节代码对象 
>>> c
<code object <module> at 0x10141e0b0, file "", line 1>
>>> exec(c)
0
1
2
3
4
5
6
7
8
9
>>> str = "3 * 4 + 5"
>>> a = compile(str,\'\',\'eval\')
>>> eval(a)
17
compile()
//描述
complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。
//语法
complex 语法:
class complex([real[, imag]])
//参数说明:
real -- int, long, float或字符串;
imag -- int, long, float;
//返回值
返回一个复数。
//实例
以下实例展示了 complex 的使用方法:
>>>complex(1, 2)
(1 + 2j)
>>> complex(1)    # 数字
(1 + 0j)
>>> complex("1")  # 当做字符串处理
(1 + 0j)
# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
>>> complex("1+2j")
(1 + 2j)
complex()
//描述
delattr 函数用于删除属性。
delattr(x, \'foobar\') 相等于 del x.foobar。
//语法
setattr 语法:
delattr(object, name)
//参数
object -- 对象。
name -- 必须是对象的属性。
//返回值
无。
//实例
以下实例展示了 delattr 的使用方法:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class Coordinate:
    x = 10
    y = -5
    z = 0
point1 = Coordinate() 
print(\'x = \',point1.x)
print(\'y = \',point1.y)
print(\'z = \',point1.z)
 
delattr(Coordinate, \'z\')
print(\'--删除 z 属性后--\')
print(\'x = \',point1.x)
print(\'y = \',point1.y)
# 触发错误
print(\'z = \',point1.z)
输出结果:
(\'x = \', 10)
(\'y = \', -5)
delattr
//描述
dict() 函数用于创建一个字典。
//语法
dict 语法:
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
//参数说明:
**kwargs -- 关键字
mapping -- 元素的容器。
iterable -- 可迭代对象。
//返回值
返回一个字典。
//实例
以下实例展示了 dict 的使用方法:
>>>dict()                        # 创建空字典
{}
>>> dict(a=\'a\', b=\'b\', t=\'t\')     # 利用 dict(([key,value],[key,value])) 的方式创建字典
{\'a\': \'a\', \'b\': \'b\', \'t\': \'t\'}
实例2:
//代码
# !/usr/bin/python3
dict0 = dict()  # 传一个空字典
print(\'dict0:\', dict0)
dict1 = dict({\'three\': 3, \'four\': 4})  # 传一个字典
print(\'dict1:\', dict1)
 
dict2 = dict(five=5, six=6)  # 传关键字
print(\'dict2:\', dict2)
 
dict3 = dict([(\'seven\', 7), (\'eight\', 8)])  # 传一个包含一个或多个元祖的列表
print(\'dict3:\', dict3)
 
dict5 = dict(zip([\'eleven\', \'twelve\'], [11, 12]))  # 传一个zip()函数
print(\'dict5:\', dict5)
以上实例输出结果为:
dict0: {}
dict1: {\'four\': 4, \'three\': 3}
dict2: {\'five\': 5, \'six\': 6}
dict3: {\'seven\': 7, \'eight\': 8}
dict5: {\'twelve\': 12, \'eleven\': 11}
dict()
//描述
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

//语法
dir 语法:
dir([object])
//参数说明:
object -- 对象、变量、类型。
//返回值
返回模块的属性列表。
//实例
以下实例展示了 dir 的使用方法:
>>>dir()   #  获得当前模块的属性列表
[\'__builtins__\', \'__doc__\', \'__name__\', \'__package__\', \'arr\', \'myslice\']
>>> dir([ ])    # 查看列表的方法
[\'__add__\', \'__class__\', \'__contains__\', \'__delattr__\', \'__delitem__\', \'__delslice__\', \'__doc__\', \'__eq__\', \'__format__\', \'__ge__\', \'__getattribute__\', \'__getitem__\', \'__getslice__\', \'__gt__\', \'__hash__\', \'__iadd__\', \'__imul__\', \'__init__\', \'__iter__\', \'__le__\', \'__len__\', \'__lt__\', \'__mul__\', \'__ne__\', \'__new__\', \'__reduce__\', \'__reduce_ex__\', \'__repr__\', \'__reversed__\', \'__rmul__\', \'__setattr__\', \'__setitem__\', \'__setslice__\', \'__sizeof__\', \'__str__\', \'__subclasshook__\', \'append\', \'count\', \'extend\', \'index\', \'insert\', \'pop\', \'remove\', \'reverse\', \'

以上是关于python内置函数的主要内容,如果未能解决你的问题,请参考以下文章

python有多少内置函数

VBS 环境下如何调用EXCEL内置函数

查找内置 Python 函数的源代码?

python 内置函数

熟练掌握Python的内置函数,加快编程速度

python--内置函数, 匿名函数