Python内置方法/函数

Posted 看不尽的尘埃

tags:

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

 

abs()

返回数字的绝对值。

abs(x)

  

all()

用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。

元素除了是 0、空、None、False 外都算 True。

all(iterable) #iterable -- 元组或列表
>>> all([1,2,0])
False
>>> all([1,2,1])
True

 

any()  

用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。

元素除了是 0、空、FALSE 外都算 TRUE。

>>> any([1,2,0])
True
>>> any([0,0])
False

  

ascii()

中文转ASC码。

>>> ascii([1,2,"测试"])
"[1, 2, ‘\u6d4b\u8bd5‘]"

  

bin()

十进制转二进制。

bin(x)

  

bool()

判断真假。

>>> bool(1)
True
>>> bool(0)
False

  

bytes()

返回一个新的“bytes”对象, 是一个不可变序列。

class bytes([source[, encoding[, errors]]])
>>> bytes(‘abcd‘,encoding="utf-8")
b‘abcd‘

  

bytearray()

返回一个新的 bytes 数组。 bytearray 类是一个可变序列。改二进制字符。

bytearray([source[, encoding[, errors]]])

>>> a = bytearray(‘abcd‘,encoding="utf-8")
>>> a[0]
97
>>> a[0] = 99
>>> a
bytearray(b‘cbcd‘)

  

callable()

如果参数 object 是可调用的就返回 True,否则返回 False。

>>> callable(int)
True

  

chr()

chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。

>>> chr(100)
‘d‘

  

ord()

ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。

 

>>> ord(‘a‘)
97

 

@classmethod

把一个方法封装成类方法。

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

  

compile()

compile() 函数将一个字符串编译为字节代码,用于底层编译的。

语法:

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

将 source 编译成代码或 AST 对象。代码对象可以被 exec() 或 eval() 执行。source 可以是常规的字符串、字节字符串,或者 AST 对象。
filename 实参需要是代码读取的文件名
mode 实参指定了编译代码必须用的模式。如果 source 是语句序列,可以是 ‘exec‘;如果是单一表达式,可以是 ‘eval‘;如果是单个交互式语句,可以是 ‘single‘。

  

>>> code = "for i in range(10):print(i)"
>>> c = compile(code,‘‘,‘exec‘)
>>> c
<code object <module> at 0x000001A23F969300, file "", line 1>
>>> exec(c)
0
1
2
3
4
5
6
7
8
9

  

也可以是表达式。

>>> code = "1+2+3/2"
>>> c = compile(code,‘‘,‘eval‘)
>>> eval(c)
4.5

  

exec()

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

这个函数支持动态执行 Python 代码。object 必须是字符串或者代码对象。如果是字符串,那么该字符串将被解析为一系列 Python 语句并执行(除非发生语法错误)。 如果是代码对象,它将被直接执行。在任何情况下,被执行的代码都需要和文件输入一样是有效的

 

complex()

返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。

>>> complex(1,2)
(1+2j)

  

 

delattr()

delattr(object, name)

实参是一个对象和一个字符串。该字符串必须是对象的某个属性。如果对象允许,该函数将删除指定的属性。

例如 delattr(x, ‘foobar‘) 等价于 del x.foobar 。

 

dir()

dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。

 

>>> dir(code)
[‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__getnewargs__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mod__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__rmod__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘capitalize‘, ‘casefold‘, ‘center‘, ‘count‘, ‘encode‘, ‘endswith‘, ‘expandtabs‘, ‘find‘, ‘format‘, ‘format_map‘, ‘index‘, ‘isalnum‘, ‘isalpha‘, ‘isdecimal‘, ‘isdigit‘, ‘isidentifier‘, ‘islower‘, ‘isnumeric‘, ‘isprintable‘, ‘isspace‘, ‘istitle‘, ‘isupper‘, ‘join‘, ‘ljust‘, ‘lower‘, ‘lstrip‘, ‘maketrans‘, ‘partition‘, ‘replace‘, ‘rfind‘, ‘rindex‘, ‘rjust‘, ‘rpartition‘, ‘rsplit‘, ‘rstrip‘, ‘split‘, ‘splitlines‘, ‘startswith‘, ‘strip‘, ‘swapcase‘, ‘title‘, ‘translate‘, ‘upper‘, ‘zfill‘]

 

  

divmod()

它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。

 

>>> divmod(10,2)
(5, 0)

  

enumerate

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

>>> a=[‘a‘,‘b‘,‘b‘,‘d‘,‘e‘]
>>> for i,e in enumerate(a):
...     print(i,e)
...
0 a
1 b
2 b
3 d
4 e

  

eval()

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

可以把字符串变成字典。

>>> a="{‘a‘:‘b‘}"
>>> type(a)
<class ‘str‘>
>>> b = eval(a)
>>> type(b)
<class ‘dict‘>

  

filter()

filter(function, iterable)

用 iterable 中函数 function 返回真的那些元素,构建一个新的迭代器。iterable 可以是一个序列,一个支持迭代的容器,或一个迭代器。

>>> f = filter(lambda n:n>5,range(10))
>>> f
<filter object at 0x000001A23FA31BE0>
>>> for i in f:
...     print(i)
...
6
7
8
9

  

map()

返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器。

map(function, iterable)

  

>>> m = map(lambda n:n*n,range(10))
>>> for i in m:
...     print(i)
...
0
1
4
9
16
25
36
49
64
81

  

float()

返回从数字或字符串 x 生成的浮点数。

>>> float(2)
2.0

  

format()

将 value 转换为 format_spec 控制的“格式化”表示。

>>> "{}".format("hello")
‘hello‘

  

frozenset()

frozenset([iterable])

  

frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

>>> l = [1,2,3,4]
>>> dir(l)
[‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, ‘__imul__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘append‘, ‘clear‘, ‘copy‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘]
>>> frozenset(l)
frozenset({1, 2, 3, 4})
>>> x = frozenset(l)
>>> dir(x)
[‘__and__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__ne__‘, ‘__new__‘, ‘__or__‘, ‘__rand__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__ror__‘, ‘__rsub__‘, ‘__rxor__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__sub__‘, ‘__subclasshook__‘, ‘__xor__‘, ‘copy‘, ‘difference‘, ‘intersection‘, ‘isdisjoint‘, ‘issubset‘, ‘issuperset‘, ‘symmetric_difference‘, ‘union‘]

  

getattr()

getattr(object, name[, default])

返回对象命名属性的值。name 必须是字符串。如果该字符串是对象的属性之一,则返回该属性的值。例如, getattr(x, ‘foobar‘) 等同于 x.foobar。

 

globals()

以键值对的方式返回当前程序的所有变量。

>>> print(globals())
{‘__name__‘: ‘__main__‘, ‘__doc__‘: None, ‘__package__‘: None, ‘__loader__‘: <class ‘_frozen_importlib.BuiltinImporter‘>, ‘__spec__‘: None, ‘__annotations__‘: {}, ‘__builtins__‘: <module ‘builtins‘ (built-in)>, ‘a‘: "{‘a‘:‘b‘}", ‘code‘: ‘1+2+3/2‘, ‘c‘: <code object <module> at 0x000001A23F9699C0, file "", line 1>, ‘i‘: 81, ‘e‘: ‘e‘, ‘b‘: {‘a‘: ‘b‘}, ‘f‘: <filter object at 0x000001A23FA31BE0>, ‘m‘: <map object at 0x000001A23FA31C18>, ‘l‘: [1, 2, 3, 4], ‘x‘: frozenset({1, 2, 3, 4})}

  

hash()

返回该对象的哈希值(如果它有的话)。哈希值是整数。

>>> hash(‘abcs‘)
-5430407018906191666

  

help()

查看函数或模块用途的详细说明。

>>> help(chr)
Help on built-in function chr in module builtins:

chr(i, /)
    Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.

  

hex()

将一个指定数字转换为 16 进制数。

>>> hex(15)
‘0xf‘

  

id()

获取对象的内存地址。

>>> a="hello"
>>> id(a)
2047968913928

  

int()

将一个字符串或数字转换为整型。

>>> int("111")
111

  

input()

接受一个标准输入数据,返回为 string 类型。

>>> str = input("Input value")
Input value hello
>>> str
‘ hello‘

  

isinstance()

判断一个对象是否是一个已知的类型。

>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False

  

issubclass()

判断参数 class 是否是类型参数 classinfo 的子类。

class A:
    pass
class B(A):
    pass
    
print(issubclass(B,A))    # 返回 True

  

iter()

用来生成迭代器。

iter(object[, sentinel])
  • object -- 支持迭代的集合对象。
  • sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。

  

>>>lst = [1, 2, 3]
>>> for i in iter(lst):
...     print(i)
... 
1
2
3

  

len()

返回对象(字符、列表、元组等)长度或项目个数。

>>> len(‘avc‘)
3

  

locals()

以字典类型返回当前位置的全部局部变量。

>>> def a(): 
...     x=‘aaa‘ 
...     print(locals())
...
>>> a()
{‘x‘: ‘aaa‘}

  

list()

用于将元组或字符串转换为列表。

>>> a = ‘[1,2,3,4]‘
>>> x = list(a)
>>> x
[‘[‘, ‘1‘, ‘,‘, ‘2‘, ‘,‘, ‘3‘, ‘,‘, ‘4‘, ‘]‘]

  

max()

返回给定参数的最大值,参数可以为序列。

>>> max(100,1000,10)
1000

  

min()

返回给定参数的最小值,参数可以为序列。

>>> min(‘a‘,‘b‘,‘c‘)
‘a‘

  

 

memoryview()

返回给定参数的内存查看对象(Momory view)。

>>>v = memoryview(bytearray("abcefg", ‘utf-8‘))
>>> print(v[1])
98
>>> print(v[-1])
103
>>> print(v[1:4])
<memory at 0x10f543a08>
>>> print(v[1:4].tobytes())
b‘bce‘
>>>

  

next()

返回迭代器的下一个项目,相当于__next__()。

it = iter([1, 2, 3, 4, 5])
while True:
    try:
        x = next(it)
        print(x)
    except StopIteration:
        break

  

object()

面向对象中的对象。

 

oct()

将一个整数转换成8进制字符串

>>> oct(1)
‘0o1‘

  

open()

用于打开一个文件,并返回文件对象。

open(file, mode=‘r‘, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
  • opener:

  

pow()

返回x的y次方的值。

>>> import math
>>> math.pow(2,3)
8.0

  

print()

用于打印输出。

print(*objects, sep=‘ ‘, end=‘
‘, file=sys.stdout, flush=False)
  • objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep -- 用来间隔多个对象,默认值是一个空格。
  • end -- 用来设定以什么结尾。默认值是换行符 ,我们可以换成其他字符串。
  • file -- 要写入的文件对象。
  • flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

  

property()

新式类中返回属性值。

class property([fget[, fset[, fdel[, doc]]]])
参数
fget -- 获取属性值的函数
fset -- 设置属性值的函数
fdel -- 删除属性值函数
doc -- 属性描述信息

  

 

class C(object):
    def __init__(self):
        self._x = None
 
    def getx(self):
        return self._x
 
    def setx(self, value):
        self._x = value
 
    def delx(self):
        del self._x
 
    x = property(getx, setx, delx, "I‘m the ‘x‘ property.")

  

 

range()

返回的是一个可迭代对象(类型是对象)。

>>>range(5)
range(0, 5)

  

repr()

将对象转化为供解释器读取的形式。

>>> a
‘[1,2,3,4]‘
>>> repr(a)
"‘[1,2,3,4]‘"

  

reversed()

返回一个反转的迭代器。

>>> a="admin"
>>> reversed(a)
<reversed object at 0x000001DCD474A6A0>
>>> print(a)
admin

 

round()

返回浮点数 x 的四舍五入值。

round( x [, n]  )
>>> round(1.335,2)
1.33

  

set()

创建一个无序不重复元素集。

>>> x=set(‘test‘)
>>> x
{‘t‘, ‘e‘, ‘s‘}

 

slice()

实现切片对象,主要用在切片操作函数里的参数传递。

setattr(object, name, value)
  • object -- 对象。
  • name -- 字符串,对象属性。
  • value -- 属性值。

>>> a = range(0,20) >>> a[slice(5,10)] range(5, 10)

  

 

setattr()

对应函数 getattr(),用于设置属性值,该属性不一定是存在的。

setattr(object, name, value)
  object -- 对象。
  name -- 字符串,对象属性。
  value -- 属性值。

>>>class A(object):
...     bar = 1
... 
>>> a = A()
>>> getattr(a, ‘bar‘)          # 获取属性 bar 值
1
>>> setattr(a, ‘bar‘, 5)       # 设置属性 bar 值
>>> a.bar
5

  

sorted()

对所有可迭代的对象进行排序操作。

>>> a = [1,3,5,97,12,55,33]
>>> x = sorted(a)
>>> x
[1, 3, 5, 12, 33, 55, 97]

  

staticmethod()

返回函数的静态方法。

class C(object):
    @staticmethod
    def f():
        print(runoob);
 
C.f();          # 静态方法无需实例化
cobj = C()
cobj.f()        # 也可以实例化后调用

##输出
runoob
runoob

 

str()

将对象转化为文本的形式。

 

sum()

对系列进行求和计算。

sum(iterable[, start])
  • iterable -- 可迭代对象,如:列表、元组、集合。
  • start -- 指定相加的参数,如果没有设置这个值,默认为0。
>>> a = [1,2,3]
>>> sum(a)
6

  

super()

用于调用父类(超类)的一个方法。用于面向对象继承。

super(type[, object-or-type])
  • type -- 类。
  • object-or-type -- 类,一般是 self

  

tuple()

将可迭代系列(如列表)转换为元组。

tuple( iterable )
iterable -- 要转换为元组的可迭代序列。

  

type()

只有第一个参数则返回对象的类型,三个参数返回新的类型对象。

type(object)
type(name, bases, dict)
  • name -- 类的名称。
  • bases -- 基类的元组。
  • dict -- 字典,类内定义的命名空间变量。

  

vars()

返回对象object的属性和属性值的字典对象。

>>> class Test:
...     a = 1
... 
>>> print(vars(Test))
{‘a‘: 1, ‘__module__‘: ‘__main__‘, ‘__doc__‘: None}

  

zip()

用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

>>> a
[1, 2, 3]
>>> b=[‘a‘,‘b‘,‘c‘]
>>> print(zip(a,b))
<zip object at 0x000001DCD4A30108>
>>> for i in zip(a,b):
...     print(i)
...
(1, ‘a‘)
(2, ‘b‘)
(3, ‘c‘)

  

__import__()

用于动态加载类和函数 。

__import__(‘a‘)        # 导入 a.py 模块

  

 

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

python学习交流 - 内置函数使用方法和应用举例

Python 内置函数 公共方法

Python中内置函数的实例方法别名

python笔记--内置模块

python 元组有用的函数,方法和片段。

Python学习之路6?函数,递归,内置函数